diff options
author | Jari Aalto <jari.aalto@cante.net> | 2004-07-27 13:29:18 +0000 |
---|---|---|
committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:56 +0000 |
commit | b80f6443b6b7b620c7272664c66ecb0b120a0998 (patch) | |
tree | 9f71c98d8fe8fa0f41d95e1eb4227f32a09d43ca /CWRU | |
parent | 7117c2d221b2aed4ede8600f6a36b7c1454b4f55 (diff) | |
download | bash-b80f6443b6b7b620c7272664c66ecb0b120a0998.tar.gz |
Imported from ../bash-3.0.tar.gz.
Diffstat (limited to 'CWRU')
-rw-r--r-- | CWRU/changelog | 3386 |
1 files changed, 3385 insertions, 1 deletions
diff --git a/CWRU/changelog b/CWRU/changelog index d090bf4f..f6ce0b92 100644 --- a/CWRU/changelog +++ b/CWRU/changelog @@ -500,7 +500,7 @@ builtins/read.def - check for arithmetic overflow with -t and -n options input.c - - check for read error before doing \r\n translation on cygnus in + - check for read error before doing \r\n translation on cygwin in b_fill_buffer - reset bp->b_used to 0 instead of leaving it at -1 on read error in b_fill_buffer @@ -6254,3 +6254,3387 @@ shell.c ---- builtins/set.def - remove mention of `-i' from long help doc, since it has no effect + + 7/17 + ---- +[bash-2.05b released] + + 7/18 + ---- + +lib/malloc/malloc.c + - make sure that the `free_return' label has a non-empty statement + to branch to + + 7/19 + ---- +locale.c + - only call setlocale() from set_lang() if HAVE_SETLOCALE is defined; + otherwise just return 0 + +lib/readline/mbutil.c + - only try to memset `ps' in _rl_get_char_len if it's non-NULL. Ditto + for _rl_adjust_point + + 7/23 + ---- +execute_cmd.c + - fix for executing_line_number() when compiling without conditional + commands, dparen arithmetic or the arithmetic for command + + + 7/24 + ---- +support/Makefile.in + - fix maintainer-clean, distclean, mostlyclean targets + +builtins/common.c + - fix bug in sh_nojobs where it doesn't pass the right number of args + to builtin_error + +bashline.c + - when using command completion and trying to avoid appending a slash + if there's a directory with the same name in the current directory, + use absolute_pathname() instead of just checking whether the first + char of the match is a slash to catch things like ./ and ../ + +examples/complete/bashcc-1.0.1.tar.gz + - a package of completions for Clear Case, from Richard S. Smith + (http://www.rssnet.org/bashcc.html) + +input.c + - fix check_bash_input to call sync_buffered_stream if the passed fd + is 0 and the shell is currently reading input from fd 0 -- all it + should cost is maybe an additional read system call, and it fixes + the bug where an input redirection to a builtin inside a script + which is being read from stdin causes the already-read-and-buffered + part of the script to be thrown away, e.g.: + + bash < x1 + + where x1 is + + hostname + read Input < t.in + echo $Input + echo xxx + +execute_cmd.c + - in initialize_subshell(), call unset_bash_input (0) to not mess with + fd 0 if that's where bash thinks it's reading input from. Fixes + bug reported by jg@cs.tu-berlin.de on 17 July 2002. Should be a way + to check whether or not the current fd 0 at the time of the call has + not been redirected, like in the bug report. Also might eventually + want to throw in a sync_buffered_stream if bash is reading input + from fd 0 in a non-interactive shell into a buffered stream, so the + stream is sync'd -- might be necessary for some uses + + 7/25 + ---- +lib/readline/signals.c + - make sure rl_catch_sigwinch is declared even if SIGWINCH is not + defined, so the readline state saving and restoring functions in + readline.c are always the same size even if SIGWINCH is not defined, + and undefined references don't occur when SIGWINCH is not defined + + 7/30 + ---- +bashline.c + - augment patch from 7/24 to not disable rl_filename_completion_desired + if the first char of the match is `~' + +lib/readline/bind.c + - when creating `shadow' keymaps `bound' to ANYOTHERKEY, don't bind + a key whose type is ISFUNC but whose function is the `fake' + rl_do_lowercase_version (fixes debian bash bug #154123) + +lib/readline/readline.c + - don't call _rl_vi_set_last from _rl_dispatch_subseq if + key == ANYOTHERKEY (when truncated to `sizeof(char)', it will be 0, + which strchr will find in `vi_textmod') + + 7/31 + ---- +lib/readline/input.c + - fix rl_gather_tyi to only slurp up one line of available input, even + if more than one line is available (fixes debian bash bug #144585) + + 8/3 + --- +bashline.c + - better fix for command completion problem -- test for directory + explicitly with test_for_directory before turning off + rl_filename_completion_desired, since that's the case we're trying + to protect against + + 8/5 + --- +include/shmbutil.h + - fix ADVANCE_CHAR macro to advance the string pointer if mbrlen + returns 0, indicating that the null wide character (wide string + terminator) was found (debian bash bug #155436) + +lib/readline/mbutil.c + - fix _rl_adjust_point to increment the string pointer if mbrlen + returns 0 + +support/shobj-conf + - fix for the `-install_name' value in SHLIB_XLDFLAGS assignment for + Darwin from the fink folks + + 8/6 + --- +builtins/exit.def + - broke code that runs ~/.bash_logout out into a separate function: + bash_logout() + +builtins/common.h + - extern declaration for bash_logout() + +eval.c + - call bash_logout() from alrm_catcher(), so timed-out login shells + run ~/.bash_logout before processing the exit trap + +lib/sh/strtrans.c + - implemented $'\x{hexdigits}' expansion from ksh93 + +configure.in + - define RECYCLES_PIDS in LOCAL_CFLAGS for cygwin; don't bother to + link with -luser32 + +examples/loadables/strftime.c + - new loadable builtin, interface to strftime(3) + + 8/7 + --- +parse.y + - parse_arith_cmd now takes a second argument, a flag saying whether + or not to add double quotes to a parsed arithmetic command; changed + callers + - changed parse_dparen so it tells parse_arith_cmd to not add the + double quotes and therefore doesn't need to remove them + - change parse_dparen to add W_NOGLOB|W_NOSPLIT|W_QUOTED flags to word + created when parsing (( ... )) arithmetic command, since the double + quotes are no longer added + +make_cmd.c + - in make_arith_for_expr, set the flags on the created word to + W_NOGLOB|W_NOSPLIT|W_QUOTED + +execute_cmd.c + - change execute_arith_command to expand the expression with + expand_words_no_vars, like the arithmetic for command code does + - fix execute_arith_command to handle the case where the expanded + expression results in a NULL word without crashing + +tests/{arith-for,cprint}.tests + - change expected output to account for no longer adding quotes to + ((...)) commands + + 8/8 + --- +print_cmd.c + - take out the space after printing the `((' and before printing the + `))' in print_arith_command, print_arith_for_command, and + xtrace_print_arith_cmd + +tests/{arith-for,cprint}.tests + - change expected output to account for no longer adding leading and + trailing spaces when printing ((...)) and arithmetic for commands + + 8/17 + ---- +subst.c + - fix issep() define to handle case where separators[0] == '\0', in + which case it always returns false + +lib/readline/histexpand.c + - fix off-by-one error in history_expand_internal when using the `g' + modifier that causes it to skip every other match when matching a + single character (reported by gjyun90@resl.auto.inha.ac.kr) + +doc/{bash.1,bashref.texi} + - make sure that the name=word form of argument to declare/typeset, + export, and readonly is documented in the description + + 8/30 + ---- +lib/readline/histexpand.c + - make history_expand_internal understand double quotes, because + single quotes are not special inside double quotes, according to + our shell-like quoting conventions. We don't want unmatched + single quotes inside double-quoted strings inhibiting history + expansion + - make `a' modifier equivalent to `g' modifier for compatibility with + the BSD csh + - add a `G' modifier that performs a given substitution once per word + (tokenized as the shell would do it) like the BSD csh `g' modifier + + 8/31 + ---- +braces.c + - when compiling for the shell, treat ${...} like \{...} instead of + trying to peek backward when we see a `{'. This makes it easier + to handle things like \${, which should be brace expanded because + the $ is quoted + + 9/7 + --- +aclocal.m4 + - redirect stdin from /dev/null in BASH_CHECK_DEV_FD before testing + the readability of /dev/fd/0, so we're dealing with a known quantity + + 9/11 + ---- +[prayers for the victims of 9/11/01] + +shell.c + - fix maybe_make_restricted to handle a restricted login shell with a + base pathname of `-rbash' and skip over any leading `-' + + 9/13 + ---- +builtins/evalstring.c + - in parse_and_execute, make sure we don't try to run unwind-protects + back to `pe_dispose' after a longjmp back to top_level if the + pe_dispose frame hasn't been initialized + +lib/readline/display.c + - fix problem with prompt overwriting previous output when the output + doesn't contain a newline in a multi-byte locale. This also should + fix the problem of bash slowing down drastically on long lines when + using a multi-byte locale, because it no longer tries to rewrite the + entire line each time. Patch from Jiro SEKIBA <jir@yamato.ibm.com> + +parse.y + - move the typedef for alias_t that is compiled in if ALIAS is not + defined up before the prototype for push_string, since that takes + an alias_t * parameter + +lib/readline/terminal.c + - bind the termcap description's left and right arrow keys to + rl_backward_char and rl_forward_char, respectively, instead of + rl_forward and rl_backward (which are just there for backwards + compatibility) + +aclocal.m4 + - when testing readability of /dev/stdin, redirect stdin from /dev/null + to make sure it's a readable file + + 9/17 + ---- +config-bot.h + - don't test __STDC__ when deciding whether or not to use stdarg.h; + just use it if it's present + +tests/read2.sub + - redirect from /dev/tty when using `read -t' + + 9/20 + ---- +builtins/history.def + - when reading `new' entries from the history file with `history -n', + fix increment of history_lines_this_session by taking any change + in history_base into account + +lib/sh/pathphys.c + - changes to sh_physpath to deal with pathnames that end up being + longer than PATH_MAX without dumping core + +lib/readline/doc/{history.3,hsuser.texinfo},doc/ bash.1 + - documented new `a' and `G' history modifiers + + 9/25 + ---- +lib/readline/misc.c + - when traversing the history list with arrow keys in vi insertion + mode, put the cursor at the end of the line (like in emacs mode) + +mksyntax.c + - don't try to use \a and \v unless __STDC__ is defined; use the + ascii integer equivalents otherwise + - include "config.h" in the generated syntax.c file for a possible + definition of `const' + +doc/{bash.1,bashref.texi} + - document the meaning of a null directory in $PATH + + 9/26 + ---- +parse.y + - fix set_line_mbstate to handle case where mbrlen() returns 0, + indicating the null wide character + - fix set_line_mbstate so we don't directly compare a char variable + to EOF, since char can (and is) unsigned on some machines + +bashline.c + - change bash_execute_unix_command to save a little bit more state: + last_shell_builtin, this_shell_builtin, last_command_exit_value + + 9/27 + ---- +execute_cmd.c + - tentative change to execute_simple_command to avoid freeing freed + memory in the case where bash forks early but still ends up calling + execute_disk_command, without passing newly-allocated memory to + make_child. This may fix the core dumps with the linux-from-scratch + folks + + 9/28 + ---- +Makefile.in,{builtins,lib/sh}/Makefile.in + - fix up dependencies, mostly on ${BUILD_DIR}/version.h, so that + parallel makes work with GNU and BSD makes + +shell.h + - new struct to save partial parsing state when doing things like + bash_execute_unix_command and other operations that execute + commands while a line is being entered and parsed + +parse.y + - new functions, save_parser_state() and restore_parser_state(), to + save and restore partial parsing state + +bashline.c + - change bash_execute_unix_command to call {save,restore}_parser_state + +builtins/jobs.def + - change execute_list_with_replacements to eliminate a run_unwind_frame + in favor of calling the cleanup explicitly and discarding the frame + +execute_cmd.c + - change execute_for_command to avoid a run_unwind_frame in the case + where the loop variable is readonly or otherwise not assignable + - change execute_select_command and execute_simple_command to use + discard_unwind_frame by running the cleanup code explicitly, instead + of using run_unwind_frame + - make sure execute_select_command decreases loop_level even on error + + 9/30 + ---- +doc/{bash.1,bashref.texi} + - fixed description of `unset' now that unsetting a previously-unset + variable is no longer an error + + 10/3 + ---- +{configure,config.h}.in + - augment check for strtold with additional check to detect the + horribly broken hp/ux 11.x implementation that returns `long_double'; + defines STRTOLD_BROKEN if so + +builtins/printf.def + - define floatmax_t as `double' if STRTOLD_BROKEN is defined + + 10/5 + ---- +lib/readline/keymaps.c + - don't automatically bind uppercase keys to rl_do_lowercase_version + in rl_make_bare_keymap + +lib/readline/readline.c + - explicitly check for ANYOTHERKEY binding to rl_do_lowercase_version + and dispatch to lowercase of key when a prefix is not matched + + 10/12 + ----- +bashline.c + - set COMP_WORDBREAKS in enable_hostname_completion to the value + of rl_completer_word_break_characters + +variables.c + - new special variable COMP_WORDBREAKS, controls the value of + rl_completer_word_break_characters + +variables.h + - new extern declaration for sv_comp_wordbreaks() + +subst.c + - change split_at_delims to behave more like shell word splitting if + the passed value for the delimiters is NULL, indicating that the + function is to use $IFS to split + +{execute_cmd,jobs,test,findcmd,input,make_cmd,redir,shell}.c +builtins/mkbuiltins.c,builtins/{fc,history,source,umask}.def +lib/sh/netconn.c +lib/termcap/termcap.c +lib/readline/histfile.c + - make sure all inclusions of <sys/file.h> are protected by + HAVE_SYS_FILE_H + +bashline.c + - don't turn off rl_filename_completion_desired in + attempt_shell_completion if the partial pathname contains a slash. + This still doesn't solve the problem of partial pathname completion + starting with a directory in the current directory without a + leading `./'. There's no way to tell the difference between that + and a file found in $PATH (which may contain `.') at the point that + attempt_shell_completion acts + + 10/18 + ----- +locale.c + - don't set lc_all to the default locale when LC_ALL is being unset + - new function, reset_locale_vars(), called to recompute the correct + locale variable values when LC_ALL is unset + - changed set_lang to not set LC_ALL, which it never should have been + doing in the first place, and to maintain a local variable `lang' + corresponding to $LANG + - change get_locale_var to use the precedence posix.2 specifies: + LC_ALL overrides individual variables; LANG, if set, is the default + - change set_locale_var to call get_locale_var to get the appropriate + value for the variable being set or unset + - call get_locale_var instead of using passed value in set_locale_var + to get the defaulting and precedence right + +lib/readline/nls.c + - new function, _rl_get_locale_var(), which does the same thing as + locale.c:get_locale_var(), with the right precedence and defaulting, + using sh_get_env_value to get the right bash variable values + - if HAVE_SETLOCALE is defined, _rl_init_eightbit first calls + _rl_get_locale_var to get the right value for LC_CTYPE, and uses + that in the call to setlocale. If _rl_get_locale_var returns NULL, + call setlocale() to get the current international environment, and, + finally, if that returns null, call setlocale with a second argument + of "" to force the implementation's `native' environment + +pcomplete.c + - change gen_wordlist_completions to dequote the text before comparing + it against the expanded word list + - changed gen_matches_from_itemlist to do the same thing + +bashline.c + - new global function, bash_dequote_word, calls bash_dequote_filename + on the text passed. Used by the programmable completion code + +lib/readline/histfile.c + - make sure that whenever read_history_range returns a non-zero value + that it sets errno to some useful value + + 10/19 + ----- +variables.c + - COMP_WORDBREAKS is now a dynamic variable, mirroring value of + rl_completer_word_break_characters. Makes sure that the variable + always points to dynamic memory if it's not null or the readline + default + +bashline.c + - change enable_hostname_completion to manage a dynamic value of + rl_completer_word_break_characters, since assignments to + COMP_WORDBREAKS can change its value unpredictably + +lib/readline/{complete.c,readline.h} + - rl_completer_word_break_characters no longer has `const' attribute + +bashline.c + - clean up necessary places due to rl_completer_word_break_characters + no longer being `const' + +doc/{bash.1,bashref.texi} + - document new COMP_WORDBREAKS variable + + 10/21 + ----- +print_cmd.c + - fix indirection_level_string to handle the case where the decoded + $PS4 is null without seg faulting + + 10/22 + ----- +builtins/shift.def + - make sure that there is actually an argument when reporting a shift + count that exceeds the number of positional paramters and + shift_verbose is enabled + +lib/readline/rltty.c + - change SET_SPECIAL to call a new function, set_special_char, since + it contains a block. It's called infrequently, so the performance + impact of making it a function should be negligible, and it helps + debugging + + 10/29 + ----- +bashline.c + - make sure the editor in VI_EDIT_COMMAND and EMACS_EDIT_COMMAND is + quoted; it might contain spaces (e.g., `emacs -nw') + +aclocal.m4 + - cache ac_cv_rl_version in RL_LIB_READLINE_VERSION macro + +configure.in + - change logic that sets RL_INCLUDEDIR so that it doesn't try to set + a bogus include path if the argument to --with-installed-readline + is `yes' -- helps with cross-compiling + +lib/readline/histexpand.c + - fix history_tokenize_word so that it handles <( and >( better + + 10/30 + ----- +redir.c + - fix write_here_string so it handles the case where `herestr' expands + to NULL without seg faulting + + 10/31 + ----- +mailcheck.c + - reverse logic flip from bash-2.05 that handled systems that don't + change the atime when the mailbox is accessed; make sure the file + is bigger before we report new mail. This is the case in the vast + majority of cases. Reported by jim@jtan.com + + 11/5 + ---- +parse.y + - change action for `for x; { list; }' and corresponding `select' + production to use \"$@\" instead of just $@, as it is with all the + other actions + + 11/9 + ---- +parse.y + - new flag for parse_matched_pair: P_DQUOTE, indicating that the + pair of characters being matched is between double quotes + - parse_matched_pair now passes P_DQUOTE down to recursive calls: + if the open char to be matched is a `"' or the passed-in flags + include P_DQUOTE, set the local `rflags' variable to P_DQUOTE and + pass `rflags' down to recursive calls + - if `rflags' includes P_DQUOTE, don't try to ansiexpand $'...' or + locale expand $"..."; consistent with other quoting constructs + + 11/11 + ----- +doc/{bash.1,bashref.texi} + - explicitly note that variables referenced in arithmetic expressions + without using `$' evaluate to 0 if they are null or unset + - note that a null variable value evaluates to 0 when used in an + arithmetic context, like when a variable with the `-i' attribute is + assigned a null value + - document the ${!prefix@} expansion as equivalent to ${!prefix*} + + 11/12 + ----- +doc/{bash.1,bashref.texi} + - note that the value of an arithmetic expression is as in C + - change the wording to note that `arithmetic evaluation' (not + arithmetic expansion, which has a different meaning) is performed + on the value assigned to a variable whose integer attribute is set + + 11/13 + ----- +execute_cmd.c + - fix execute_disk_command so it calls exit() after printing the error + message in a restricted shell context if the shell has already forked + (nofork != 0 && there are no pipes) + + 11/19 + ----- +builtins/type.def + - don't report on aliases unless expand_aliases is set and the parser + is performing alias expansion; changed tests/type.tests and + tests/type.right accordingly + + 11/25 + ----- +general.c + - fix for full pathnames including drive letters on cygwin from + Corinna (convert to posix-style paths, which the rest of the + code handles much better) + +lib/readline/text.c + - fixes to overwrite mode from jimmy@is-vn.bg: + o in _rl_overwrite_char, do the overwrite mode self-insert + as one group, even when overwriting more than 1 char + o in _rl_overwrite_char, do the insert before the delete so + that an undo positions the cursor on the character restored, + not to the right of it + o in _rl_overwrite_rubout, don't do rl_insert_char(' ') unless + rl_point < rl_end. Since overwrite-mode self-insert acts as + in insert-mode when at eol, make rubout behave like + insert-mode rubout + + 11/30 + ----- +lib/readline/misc.c + - call rl_replace_line with `1' as second parameter if we're going to + immediately overwrite the undo list + +lib/readline/search.c + - in make_history_line_current, use _rl_replace_text to make the line + replacement an undoable operation. Affects all non-incremental + search functions. + +parse.y + - make behavior introduced on 11/9 dependent on extended_quote + variable, controllable by extquote shopt option. Default setting is + on for backwards compatibility + +builtins/shopt.def + - new `extquote' option to control extended_quote variable + + 12/3 + ---- +jobs.c + - change message printed when attempting to put a background job in + the background with `bg' to include the job id and make the + statement declarative + + 12/10 + ----- +bashhist.h + - define explicit flag values for history_control + +variables.c + - change sv_history_control to use new flag values + - change sv_history_control to parse $HISTCONTROL as a colon-separated + list of values for the history_control variable + +bashhist.c + - change check_history_control to use new flag values and restructure + to remove case statement + - new function hc_erasedups(line); removes all entries matching LINE + from the history list + - call hc_erasedups() from check_add_history after we've determined + that we're saving the line + +doc/{bash.1,bashref.texi} + - documented new options available for $HISTCONTROL and that it can + be a colon-separated list of history control options + + 12/11 + ----- +subst.c + - fix pat_subst() to not increment `e' (pointer to the end of the + matched portion of the string) until after we're sure we're going + around the loop again; fixes problem with empty replacements for + a pattern that doesn't match (bug reported by Don Coleman + <don@coleman.org>) + + 12/17 + ----- +lib/readline/display.c + - fixes to multibyte redisplay from jir@yamato.ibm.com (Jiro SEKIBA): + o speed up calculation of first difference between old and new + lines in the common case + o don't try to see if we're in the middle of a multbyte char + in update_line (we'll see how this one works out) + + 12/18 + ----- +doc/bashref.texi + - make it clear that the `command-list' function definition may be + terminated by an ampersand before the closing brace + + 12/28 + ----- +redir.c + - set `expanding_redir' flag when expanding words in a redirection + +subst.c + - new function, exp_jump_to_top_level(), to do any word expansion + cleanup before a call to jump_to_top_level from within that file; + sets expanding_redir back to 0 before jump_to_top_level + +variables.c + - in find_variable(), don't call find_variable_internal with a second + parameter of 1 if expanding_redir is non-zero + - in find_variable_internal(), don't search the temporary env if + subshell_environment includes SUBSHELL_FORK (indicating a simple + command) and expanding_redir is non-zero + +parse.y + - increment line_number when we read a \<newline> pair + +array.c + - added array_unshift_element and array_shift_element (which just call + array_shift and array_rshift, respectively), for bash debugger + support + + 1/4/2003 + -------- +doc/{bash.1,bashref.texi} + - note in the section describing the execution environment passed to + children that subshells inherit shell functions marked for export + - note in the section describing shell functions the possibility + that exported functions may result in two entries in the environment + with the same name + +parse.y + - when pushing an alias expansion onto the pushed_string list, append + a space to the expanded definition to make the parser's lookahead + work without using the `mustpop' hack in shell_getc + + 1/8 + --- +shell.c + - change calls to exit() with EX_USAGE as a parameter to use + EX_BADUSAGE instead, since EX_USAGE is defined as 258 and is + technically out of range + + 1/14 + ---- +aclocal.m4 + - check for the termcap functions in libc first: if we don't have + to link in another library, let's not do it + - change the test for mbstate_t to use AC_TRY_COMPILE instead of + AC_TRY_RUN + +doc/{bash.1,bashref.texi} + - document that bash turns line editing off if environment variable + EMACS is set to `t' when it starts up + +doc/bash.1 + - minor change to give the ftp url for the latest version of bash in + the bug reports section + +lib/readline/histexpand.c + - in get_history_event, cast a couple of `const char *' variables to + `char *' in function call parameter lists to avoid compiler warnings + + 1/21 + ---- +builtins/cd.def + - change `cd -' so it prints the current working directory after a + successful chdir even when the shell is not interactive + + 1/31 + ---- +lib/readline/doc/rltech.texinfo + - clarified exactly what is meant by the term `application-specific + completion function', made its use consistent, and documented + what variables are changed before such a function is called + +lib/readline/input.c + - new function, _rl_pushed_input_available(), returns non-zero if + there are characters in the input queue managed by rl_get_char + and _rl_unget_char + +lib/readline/rlprivate.h + - new extern declaration for _rl_pushed_input_available + +lib/readline/callback.c + - change rl_callback_read_char to check _rl_pushed_input_available + and loop if there's something there, so characters don't languish + until more keyboard input is read + +execute_cmd.c + - new variable, last_command_exit_signal, non-zero if + last_command_exit_value result from wait_for was result of a signal + +nojobs.c + - keep track of whether or not a given pid was killed by a signal with + a new flag in the pid_list array + - new function int find_termsig_by_pid(pid_t pid) to get the + terminating signal, if any, for a particular pid + - new function int get_termsig(WAIT status) returns the terminating + signal corresponding to status + - set last_command_exit_signal in wait_for and the various wait_for_xx + functions + +jobs.c + - new functions, process_exit_signal and job_exit_signal, return the + signal that killed a given process or job, if a signal caused its + death + - set last_command_exit_signal in wait_for by calling job_exit_signal + or process_exit_signal appropriately + +subst.c + - don't resend SIGINT to ourselves unless last_command_exit_signal is + SIGINT and last_command_exit_value == 128 + SIGINT. This fixes the + $(exit 130) bug reported by Paul Jarc + +expr.c + - new function, expr_bind_variable, calls bind_int_variable and + then stupidly_hack_special_variables. This fixes the + `let OPTIND=1' bug + +bashline.c + - change history_and_alias_expand_line and shell_expand_line to call + history_expand_line_internal so calls to pre_process_line are + localized + - change history_expand_line_internal and cleanup_expansion_error to + temporarily turn off hist_verify before calling pre_process_line + to avoid the effects described by teirllm@dms.auburn.edu + +parse.y + - don't unconditionally turn off PST_ALEXPNEXT in push_string. This + fixes the multiple alias expansion bug reported by Paul Jarc. + +lib/readline/vi_mode.c + - change rl_vi_subst to push `l' instead of ` ' -- it should be + equivalent, but this has been reported to fix a problem in multibyte + locales + +lib/readline/readline.h + - new state flag value RL_STATE_TTYCSAVED, indicates that save_tty_chars + has been called. Since it's only used and visible internally, it's + undocumented + +lib/readline/rltty.h + - changed all of the members of _rl_tty_chars struct to `unsigned char' + +lib/readline/rltty.c + - set the RL_STATE_TTYCSAVED after save_tty_chars is called + - new function, rl_tty_unset_default_bindings(), resets bindings for + everything rl_tty_set_default_bindings() messes with back to + rl_insert, so rl_tty_set_default_bindings can be called again with + possible changes + - new function that does the bulk of the work for + rltty_set_default_bindings: _rl_bind_tty_special_chars() + - change prepare_terminal_settings so that it can track changes to the + terminal special chars made by stty(1): unset the bindings with + rl_tty_unset_default_bindings before calling save_tty_chars, and + _rl_tty_set_default_bindings after, with the new values from + get_tty_settings(). This implements a long-standing request, most + recently made by Tim Waugh of Red Hat. + +lib/readline/readline.h + - extern declaration for rl_tty_unset_default_bindings() + +lib/readline/readline.c + - new function, reset_default_bindings, calls + rl_tty_unset_default_bindings() to reset the terminal special chars + back to rl_insert and then read the new ones + +lib/readline/doc/rltech.texinfo + - documented rl_tty_unset_default_bindings() + + 2/1 + --- +[prayers and condolences to the families of the space shuttle crew members] + +aclocal.m4 + - add checks for mbrtowc and mbrlen in BASH_CHECK_MULTIBYTE + - new check, BASH_FUNC_CTYPE_NONASCII, checks whether or not the ctype + functions handle non-ascii characters correctly + +config.h.in + - add HAVE_MBRTOWC and HAVE_MBRLEN + - add NO_MULTIBYTE_SUPPORT for new configure argument + - add CTYPE_NON_ASCII + +config-bot.h, lib/readline/rlmbutil.h + - make sure that mbrtowc, mbrlen, and wcwidth are all present before + turning on HANDLE_MULTIBYTE + - turn off multibyte chars if NO_MULTIBYTE_SUPPORT is defined + +configure.in + - new argument --enable-multibyte (enabled by default), allows + multibyte support to be turned off even on systems that support it + +lib/readline/chardefs.h + - define NON_NEGATIVE as 1 if CTYPE_NON_ASCII is defined + + 2/3 + --- +config.h.in + - add HAVE_WCTOMB + +aclocal.m4 + - check for wctomb in BASH_CHECK_MULTIBYTE + + 2/4 + --- +lib/readline/vi_mode.c + - in _rl_vi_change_mbchar_case, make sure the result from wctomb() + is NULL-terminated before trying to insert it with rl_insert_text() + + 2/5 + --- +lib/readline/display.c + - fix to update_line to avoid problems on systems with multibyte + characters when moving between history lines when the new line + has more glyphs but fewer bytes (twaugh@redhat.com) + +lib/readline/vi_mode.c + - use wcrtomb() instead of wctomb() in _rl_vi_change_mbchar_case + +pcomplete.c + - fix init_itemlist_from_varlist to handle the case where the + `varlist' is NULL + +doc/{bash.1,bashref.texi} + - clarified when a simple command may fail without the shell exiting + when -e is set + + 2/13 + ---- +parse.y + - when bash is started with --nolineediting, ignore \[ and \] when + decoding the prompt string + +subst.c + - fix remove_quoted_nulls so that a string with a CTLESC appearing + after a CTLNUL (which was removed) does not leave characters in + the string inappropriately + + 2/14 + ---- +builtins/common.h + - new flag value for parse_and_execute(): SEVAL_RESETLINE, which + allows the caller to specify whether or not the internal idea + of the line number should be reset to 1 + +builtins/evalstring.c + - parse_and_execute() now tells push_string to reset the line + number only if the SEVAL_RESETLINE flag is set by the caller + + 2/15 + ---- +builtins/evalfile.c + - pass SEVAL_RESETLINE from _evalfile() to parse_and_execute() + +subst.c + - if the shell is currently interactive, pass SEVAL_RESETLINE to + parse_and_execute() when doing command substitution + +jobs.c + - add SEVAL_RESETLINE to parse_and_execute while running SIGCHLD trap + +command.h + - add `line' members to case_com, for_com, select_com + - rearranged order of members in some of the command structs, so + `flags' and `line' are first + - added a `source_file' member to the function_def struct; keeps + track of where the function was defined + +doc/Makefile.in + - add some new suffix rules: .dvi.ps + +doc/{bash.1,bashref.texi} + - added text to the description of the `trap' builtin tightening up + the language describing when the ERR trap will be run + +error.c + - if $BASH_SOURCE (internally-maintained) exists, use BASH_SOURCE[0] + in get_name_for_error if the shell is not interactive + +array.h + - new convenience defines: array_push and array_pop + +variables.c + - change get_funcname to return this_shell_function->name only if + arrays have not been compiled into the shell + - change init_funcname_var to initialize FUNCNAME as an array variable + if we have arrays + - new function: get_self(SHELL_VAR *self), a degenerate `dynamic_value' + function for dynamic variables + - new function: init_dynamic_array_var(), a generic dynamic array + variable initializer to handle the common case + - use init_dynamic_array_var() instead of explicit init_dirstack_var() + - use init_dynamic_array_var() instead of explicit init_groups_var() + - new dynamic array variables: BASH_ARGC, BASH_ARGV, BASH_SOURCE, + BASH_LINENO, initialized with init_dynamic_array_var + +shell.c + - initialize BASH_LINENO, BASH_SOURCE, FUNCNAME in open_shell_script + +{execute_cmd,trap}.c + - take out trap_line_number, since parse_and_execute doesn't reset the + line number any more when running the trap commands + +make_cmd.c + - augment make_function_def to get source file name and call + bind_function_def to save the entire FUNCTION_DEF + +variables.c + - new hash table: shell_function_defs, keeps table of shell function + definitions including source file and line number info corresponding + to shell_functions table + - new functions: find_function_def and bind_function_def to manage + the shell_function_defs hash table + - new function: unbind_function_def to remove a function definition + from the shell_function_defs table (right now uncalled) + +variables.h + - extern declaration for bind_function_def, find_function_def + - new extern declaration for unbind_function_def + +execute_cmd.c + - in function prologue and epilogue, push and pop FUNCNAME, + BASH_SOURCE, and BASH_LINENO information + +dispose_cmd.c + - broke the code that disposes a FUNCTION_DEF out into two new + functions: dispose_function_def and dispose_function_def_contents + +dispose_cmd.h + - new extern declarations for dispose_function_def_contents and + dispose_function_def + +copy_cmd.c + - move body of copy_function_def (other than allocating a new + FUNCTION_DEF) to copy_function_def_contents + - make sure to copy the new source_file member of a function_def in + copy_function_def_contents + - copy_function_def is no longer static, copy_function_def_contents + is not either + +command.h + - new extern declaration for copy_function_def_contents and + copy_function_def + +parse.y + - keep a stack of line numbers where case, select, and for commands + start, with a maximum nesting level of 128; increment when reading + word after `for', `select' or `case' in read_token_word; decrement + in grammar actions after parsing a complete for, arith_for, select, + or case command + - create for, case, arith_for, and select commands with an extra + line number (word_lineno[word_top]) argument + +make_cmd.c + - make_for_or_select, make_for_command, make_case_command, and + make_select_command all take an extra `line_number' argument + +make_cmd.h + - corresponding changes to extern declarations for those functions + + 2/16 + ---- +{execute_cmd,shell,variables}.c + - follow each call to remember_args with a call to push_args or + pop_args to manage the BASH_ARGV and BASH_ARGC arrays. Only set + when the shell is started to run shell script or runs a shell + function. Doesn't handle `set' or `shift' yet, nor `source'. + +execute_cmd.c + - keep track of the level of subshells with a new variable, manipulated + in execute_in_subshell + - set currently_executing_command in execute_command_internal(), + even if we're running a trap + - better line number management when executing simple commands, + conditional commands, for commands in execute_command_internal() + and the various functions that implement the commands + (execute_cond_command, execute_for_command, execute_etc.) + +variables.c + - new dynamic variable BASH_SUBSHELL, with new get_subshell and + assign_subshell functions to manipulate it + - new functions push_args (WORD_LIST *list) and pop_args (void) to + manage the BASH_ARGC and BASH_ARGV dynamic array variables + +variables.h + - new extern declarations for push_args and pop_args + +builtins/evalfile.c + - in _evalfile, do appropriate things to the FUNCNAME, BASH_ARGV, + BASH_ARGC, BASH_SOURCE, and BASH_LINENO variables + +support/mksignames.c + - add another fake signal for `trap'; make NSIG+2 == `RETURN' + +trap.c + - _run_trap_internal now returns an int: the exit value of the command + run as the result of the trap + - run_debug_trap now returns an int: the exit value of the command + run as the result of the trap + - RETURN is a new special trap + - new function: set_return_trap(char *command) interface for the rest + of the shell, like set_{debug,error}_trap + - new function: run_return_trap() + - command substitution and other child processes don't inherit the + return trap + +trap.h + - new extern declaration for set_return_trap() and run_return_trap + - new defines for RETURN_TRAP; increment BASH_NSIG + - change extern declaration for run_debug_trap() since it now returns + an int + +shell.c + - new invocation long option: --debugger, turns on debugging and + sets internal `debugging_mode' variable + +execute_cmd.c + - new code to save return trap when executing a shell function, so + shell functions don't inherit it + - run debug trap before binding the variable and running the action + list in a `for' command + - run debug trap before binding the selection variable and running + the query in a `select' command + - run debug trap before running matcher in a `case' command + +builtins/set.def + - new `set -o functrace' (set -T), causes DEBUG trap to be inherited + by shell functions + - new `set -o errtrace' (set -E), causes ERR trap to be inherited + by shell functions + +flags.c + - new flags -E and -T, control error_trace_mode and + function_trace_mode respectively + +flags.h + - new extern declarations for error_trace_mode and function_trace_mode + + 2/17 + ---- +doc/bashref.texi + - changed the `dircategory' as per Karl Berry's suggestion + +doc/texinfo.tex + - update to version of 2003/02/04 from texinfo.org + +support/texi2dvi + - update to version 1.14 from texinfo-4.5 distribution + + 2/20 + ---- +support/config.{guess,sub} + - update to versions of 2002/11/30 + +lib/readline/doc/manvers.texinfo + - renamed to version.texi to match other GNU software + - UPDATE-MONTH variable is now `UPDATED-MONTH' + +lib/readline/doc/{hist,rlman,rluserman}.texinfo + - include version.texi + +doc/version.texi + - new file, with standard stuff matching other GNU distributions + +{doc,lib/readline/doc}/Makefile.in + - include right stuff for `version.texi' + +lib/readline/doc/{rluserman,rlman,hist}.texinfo + - use @copying and @insertcopying and @ifnottex instead of @ifinfo + - add FDL as an appendix entitled `Copying This Manual' + +lib/readline/doc/{rltech,rluser,hstech,hsuser}.texi + - changed the suffix from `texinfo' to `texi' + +lib/readline/doc/{rlman,rluserman}.texinfo, doc/bashref.texi + - include rltech.texi,rluser.texi,hstech.texi, and hsuser.texi + +lib/readline/doc/Makefile.in,doc/Makefile.in + - made appropriate changes for {{rl,hs}tech,{rl,hs}user}.texi + +lib/readline/doc/{rlman,rluserman}.texinfo + - changed the suffix from `texinfo' to `texi' + +lib/readline/doc/hist.texinfo + - renamed to history.texi + + 2/25 + ---- +pathnames.h.in + - moved pathnames.h here so value of DEBUGGER_START_FILE can be + substituted by configure + +aclocal.m4 + - added AM_PATH_LISPDIR for debugger + +configure.in + - added some variables: `bashvers', `relstatus' to use info in more + than one place + - call AM_PATH_LISPDIR + - new option: --enable-debugger, sets DEBUGGER cpp option + - new option with AC_ARG_VAR: DEBUGGER_START_FILE + - make `pathnames.h' a file generated by configure + +Makefile.in + - add rule to create pathnames.h + +builtins/declare.def + - added extra line number and source file name to `declare -F' output + if `--debugger' is used at startup + +builtins/evalfile.c + - call run_return_trap from source_file before returning the result + from _evalfile() + +execute_cmd.c + - call run_return_trap in execute_function before restoring the old + context + +builtins/source.def + - arrange to save and restore DEBUG traps when sourcing files if + function_trace_mode (set -o functrace) is not set + +print_cmd.c + - broke print_for_command, print_select_command, print_case_command + into two functions each: one to print the `header' and one for + the body + - print_cond_command is no longer static + - print_arith_command now takes a WORD_LIST *, since it doesn't + actually do anything with the ARITH_COM it's passed except print + the enclosed WORD_LIST + - print_arith_command is no longer static + +externs.h + - extern declarations for print_{for,select,case}_command_head, + print_cond_command, print_arith_command + +{.,builtins,lib/sh}/Makefile.in + - corrected dependencies on pathnames.h, since it's now created in + the build directory + + 3/5 + --- +lib/glob/glob.c + - handle alloca() failing (it's supposed to return NULL) + - use malloc() (with its attendent bookkeeping) instead of alloca() + in glob_filename() + +subst.c + - check whether shell_glob_filename returns NULL in + glob_expand_word_list + - change parameter_brace_expand_rhs to handle cases like + ${a[2]:=value} by properly creating the array element instead of a + variable named `a[2]' (reported by <opengeometry@yahoo.ca>) + +variables.c + - change bind_int_variable to use valid_array_reference instead + of looking for `[' + +lib/readline/vi_mode.c + - check for `a' in _rl_vi_done_inserting so the text inserted by an + `a' command can be reinserted with a `.' + +lib/readline/readline.c + - when entering vi insertion mode in readline_internal_setup(), make + sure that _rl_vi_last_key_before_insert is set to `i' so that undo + groups and redo work better (reported by <opengeometry@yahoo.ca>) + +lib/glob/sm_loop.c + - handle ?(...) in a pattern immediately following a `*', instead of + ignoring the `(' and treating the `?' as a single-char match, as + long as FNM_EXTFLAG is set (reported by <anderson110@poptop.llnl.gov>) + +aclocal.m4 + - new test for presence of struct timezone, BASH_STRUCT_TIMEZONE + +config.h.in + - add HAVE_STRUCT_TIMEZONE + +configure.in + - call BASH_STRUCT_TIMEZONE + +execute_cmd.c + - don't try to use `struct timezone' in calls to gettimeofday unless + HAVE_STRUCT_TIMEZONE is defined; use (void *)NULL otherwise + + 3/20 + ---- +execute_cmd.c + - new variable, the_printed_command_except_trap, saves the command + being executed before a trap is executed, for the debugger + +trap.c + - if in debugging mode, let command substitutions and other child + processes inherit the DEBUG and ERR traps if the `functrace' + (which is really a bad name, given this semantic) or `errtrace' + options, respectively, have been set + +shell.c + - local_pending_command renamed to command_execution_string; no longer + static + +variables.c + - new dynamic variable, BASH_COMMAND, set to the command string + currently executing, or the one that caused a trap to execute + (mapped to the_printed_command_except_trap) + - new variable, BASH_EXECUTION_STRING, set to the argument to the + -c invocation option, if the shell was started that way + + 3/22 + ---- +execute_cmd.c + - changed execute_for_command, eval_arith_for_expr, + execute_select_command, execute_arith_command, execute_cond_command, + execute_simple_command to implement new DEBUG trap semantics + for the debugger: if the DEBUG trap commands return a non-zero + status and debugging_mode is non-zero, we skip the command to be + executed + +trap.c + - change run_debug_trap for the debugger: if we're in the debugger + and the DEBUG trap returns 2 while we're in a function or sourced + script, we force a `return' + +shell.c + - new function, start_debugger(), that sources the debugger start file + and turns the debugger on + +builtins/shopt.def + - new settable option, `extdebug', turns on debugging_mode, as if + --debugger had been supplied at invocation (but does not source + debugger startup file) + +trap.c + - make sure that run_exit_trap arranges for `returns' to come back + there, too, so a `return' executed by an `exit' invoked within a + shell function behaves correctly + +support/shobj-conf + - change darwin/MacOS X stanza based on advice from mac os x developers + +lib/sh/mailstat.c + - set the atime member of the synthesized stat struct to 0 if `cur/' + is empty, rather than leaving it undefined + + 3/24 + ---- +builtins/caller.def + - new builtin to provide a call stack for the debugger + +builtins/evalfile.c + - added a second `flags' argument to source_file() + - new flag value for flags argument to _evalfile(): FEVAL_NOPUSHARGS. + If included in flags arg, it means to not manipulate the BASH_ARGV + and BASH_ARGC arrays + +builtins/common.h + - change prototype for source_file() + +builtins/source.def + - add flag value to call to source_file(): set to 1 if we replaced + the positional parameters + - add call to push_args if additional arguments supplied to the + source builtin + - add call to pop_args in maybe_pop_dollar_vars + +execute_cmd.c + - run the debug trap in execute_function so the debugger can stop + before the first command in a function body is executed + - modify subshell_level before executing a builtin or function in a + subshell + - print `for', `select', `case' command heads when set -x is enabled + +print_cmd.c + - `xtrace_print_word_list' now takes an additional flags argument, + which, if non-zero, says to print indirection_level_string() + - new functions to print for, select, and case command heads when + set -x is enabled + - add spaces after `((' and before `))' in xtrace_print_arith_command + +externs.h + - changed extern declaration for xtrace_print_word_list + - new declarations for xtrace_print_{for,case,select}_command_head() + +subst.c + - modify subshell_level when executing a command substitution + + 3/25 + ---- +execute_cmd.c + - use `line_number' in executing_line_number instead of looking into + the current command if it's a simple command; rearrange code to + make this simpler to compile in and out + - need to save and restore value of currently_executing_command around + calls to debug trap and return trap in execute_function + +make_cmd.c + - make sure make_arith_for_command() disposes the WORD_LIST * it is + passed, since nothing else does and it's not used directly + + 3/28 + ---- +Makefile.in + - fixed dependencies for `error.o' on shell.h and version.h -- makes + parallel makes (gmake -j 4) work correctly + +doc/{bash.1,bashref.texi} + - documented all new features added to support the debugger + + 4/1 + --- +lib/sh/shquote.c + - make sure CTLESC and CTLNUL characters are escaped with CTLESC + by sh_double_quote, sh_backslash_quote and + sh_backslash_quote_for_double_quotes + Fixes vulnerability reported by svdb@stack.nl + +shell.h + - new `pipestatus' member of sh_parser_state_t, to save and restore + $PIPESTATUS + +parse.y + - changes to save_parser_state and restore_parser_state to save and + restore $PIPESTATUS + +builtins/read.def + - add a call to word_list_remove_quoted_nulls before assigning the + word list read from standard input to an array variable. Fixes + bug reported by holzhey@ppprs1.phy.tu-dresden.de + + 4/3 + --- +execute_cmd.c + - in execute_null_command, if redirections are supplied, make sure + things like 3</etc/passwd are undone immediately, since they're + being done in the current shell + - functions now inherit the RETURN trap only if function tracing is + on for that function or globally + +lib/readline/misc.c + - in rl_replace_from_history, don't force rl_replace_line to clear + the undo_list, since it might point directly at an undo list + from a history entry (to which we have no handle) + + 4/4 + --- +trap.c + - initialize RETURN_TRAP stuff appropriately in initialize_traps() + - let command substitutions inherit the RETURN trap if we're in + the debugger and function tracing has been enabled + +redir.c + - do_redirections and do_redirection_internal now take a single + flags argument instead of multiple boolean flags + +redir.h + - new #defines for flags argument to do_redirection{s,_internal} + +execute_cmd.c + - change all calls to do_redirection to use new flag values + +parse.y + - new function, free_pushed_string_input(), an external interface to + clear the pushed_string list (alias expansion) + - new define SHOULD_PROMPT to say when it's OK to call prompt_again + (if the shell is currently interactive and is reading input from + the terminal or readline) + - make sure shell_getc and read_secondary_line only call prompt_again + if SHOULD_PROMPT evaluates to true + - prompt_again shouldn't do anything if the shell is currently in the + middle of expanding a multiline alias, since we won't be printing a + prompt anyway + +externs.h + - new extern declaration for free_pushed_string_input() + +execute_cmd.c + - command_substitute and process_substitute now call + free_pushed_string_input because they shouldn't deal with any + partial alias expansion the parent shell may have started + + 4/5 + --- +braces.c + - added {x..y} brace expansion, shorthand for {x,x+1,x+2,...,y}: + x, y can be integers or single characters; the sequence can be + ascending or descending; increment is always 1. Beware that + something like {a..A} can lead to non-letters. + + 4/7 + --- +subst.c + - change extract_delimited_string and extract_dollar_brace_string to + return NULL on an expansion error when no_longjmp_on_fatal_error + is set, so the calling functions don't assume that the expansion + was successful (primarily the prompt expansion and completion code) + +doc/{bash.1,bashref.texi} + - documented new sequence generation feature of brace expansion + + 4/8 + --- +lib/sh/strstr.c + - replacement for strstr(3), in case the C library doesn't provide it + +configure.in + - check for strstr, add to LIBOBJS if not found + +array.c + - array_walk now takes a third void * argument; it's passed to `func' + as its second argument + +array.h + - change sh_ae_map_func_t prototype to add void * second argument + + 4/10 + ---- +array.c + - new function: array_keys_to_word_list, returns a list of indices for + a given array + +array.h + - new extern declaration for array_keys_to_word_list + +arrayfunc.c +3 - new function: char *array_keys(), returns a string with keys for a + given array, with the appropriate quoting + +arrayfunc.h + - new extern declaration for array_keys + +subst.c + - code to implement ksh93-like ${!array[@]} expansion (array[*] works, + too), which expands to all the keys (indices) of ARRAY + +doc/{bash.1,bashref.texi} + - documented new ${!array[@]} expansion + + 4/19 + ---- +builtins/setattr.def + - remove any mention of the `-n' option from readonly builtin's short + and long documentation + +pcomplib.c + - fix progcomp_insert to increase the refcount on the `cs' argument + before calling hash_insert -- fixes the problem of multiple calls + to progcomp_insert with the same compspec + +doc/bash.1 + - add mention of characters that inhibit history expansion when found + immediately following an unquoted `!' + +bashline.c + - convert the code conditionally compiled in by the NO_FORCE_FIGNORE + #define to something runtime-tunable with the `force_fignore' + variable (opposite sense). force_fignore is 1 by default + +builtins/shopt.def + - new tunable `shopt' option: `force_fignore', controls force_fignore + variable and behavior of FIGNORE handling + +lib/readline/complete.c + - new variable, _rl_complete_show_unmodified, causes completer to list + possible completions if more than one completion and partial + completion cannot be done + - new value for what_to_do argument to rl_complete_internal, `@', + indicating that we want the show-unmodified behavior + - change rl_completion_type to return `@' when appropriate + +lib/readline/bind.c + - new bindable variable, show-all-if-unmodified, which controls value + of _rl_complete_show_unmodified + +lib/readline/rlprivate.h + - extern declaration for _rl_complete_show_unmodified + +lib/readline/doc/rluser.texi + - documented show-all-if-unmodified + +lib/readline/doc/rltech.texi + - documented new `@' value for second argument to rl_complete_internal + - documented new return value from rl_completion_type + + 4/22 + ---- +lib/readline/signals.c + - in rl_set_signal, set sa_flags to SA_RESTART for SIGWINCH, if we + have POSIX signals -- this is what most applications expect, and + they're not prepared to deal with EINTR + + 4/25 + ---- +bashline.c + - take out attempts to suppress readline filename completion when + attempting command completion and there is a directory with the + same name in the current directory. #if 0'd for now; maybe make + it conditional later + +error.c + - new variable, gnu_error_format, causes non-interactive errors with + line numbers to be printed in the `gnu style' (filename:lineno:) + instead of the `shell style' (filename: line lineno:) by + error_prolog and parser_error + +version.h,support/mkversion + - don't put extern function declarations into created version.h any + more + +version.c,externs.h + - add extern declarations for show_shell_version() and + shell_version_string(), since they're no longer in version.h + (this backs out change from 9/10/2001) + +shell.h + - don't include version.h + +Makefile.in + - remove unneeded dependencies on version.h -- only version.o + needs it now + +builtins/shopt.def + - new option `gnu_errfmt', changes error messages with line numbers + to use the `standard' gnu format + +pcomplete.h + - new COPT_BASHDEFAULT and COPT_PLUSDIRS defines + +bashline.c + - if the COPT_BASHDEFAULT flag is set, try the rest of the bash + default completions if a compspec with that flag set generates + no matches + - broke bash completions out into separate function: + bash_default_completion(const char *text, int start, int end, + int qc, int in_command_position); change attempt_shell_completion + to call it + +bashline.h + - new extern declaration for bash_default_completion + +builtins/complete.def + - added code to compgen to call bash_default_completion if a compspec + with the COPT_BASHDEFAULT flag set generates no matches from the + programmable completion options + +doc/{bash.1,bashref.texi} + - document new `gnu_errfmt' shopt option + +doc/bash.1,lib/readline/doc/rluser.texi + - document new `-o bashdefault' option to complete and compgen + + 4/26 + ---- +pcomplete.c + - if a compspec has the COPT_PLUSDIRS flag set, generate any + directory name completions and add them to the set of possible + completions as the last thing in gen_compspec_completions + +builtins/complete.def + - add new `-o plusdirs' option to complete and compgen; means to + do directory name completion in addition to other actions + specified by the compspec, and do it last + + 5/12 + ---- +copy_cmd.c + - fix copy_{for,select,case}_command to copy the line member + + 5/13 + ---- +lib/readline/rlmbutil.h,include/shmbutil.h + - new #define MB_INVALIDCH, evaluates to true if return value from + mbrtowc or mbrlen denotes an invalid multibyte character + - new #define MB_NULLWCH, evaluates to true if return value from + mbrtowc or mbrlen denotes a null multibyte character + +lib/readline/complete.c + - new function, fnwidth(), returns printed length of a filename, + correctly handling multibyte characters + - new function, fnprint(), displays a filename on rl_outstream + correctly handling multibyte characters + - use fnwidth() instead of simple strlen() for length calculations + in display_matches + +lib/readline/{display,mbutil}.c + - use MB_INVALIDCH and MB_NULLWCH as appropriate + + 5/21 + ---- +configure.in + - turn off the builtin malloc on GNU/FreeBSD systems (GNU userland, + FreeBSD kernel) + + 5/24 + ---- +pcomplete.c + - in programmable_completions, copy the compspec before using it to + generate the possible completions, allowing the completion for the + command to be changed by the compspec itself without causing a + core dump because the shell frees freed memory (reported by + marcus.harnish@gmx.net) + +parse.y + - in shell_getc, don't call notify_and_cleanup in an interactive shell + unless the shell is currently reading from the terminal and would + print a prompt. This fixes programmable completions printing job + notifications (reported by r.d.green@lancaster.ac.uk) + - use SHOULD_PROMPT macro consistently + +shell.c + - use get_string_value instead of getenv when looking up $TERM and + $EMACS to see whether the shell is running under emacs + - check for `TERM=dumb' as well as `EMACS=t' to decide whether or + not to turn off command-line editing in emacs shell windows + (reported by jik@kamens.brookline.ma.us) + + 5/28 + ---- +expr.c + - save and restore the `evalbuf' context, since evalexp can be + called recursively (e.g. a[b[c]]) + + 5/29 + ---- +builtins/common.c + - in display_signal_list, when displaying for `kill -l' in posix mode, + display signal names without the `SIG' prefix + +doc/bashref.texi + - documented changed to posix mode behavior of kill -l + +builtins/kill.def + - changed the error message printed when argument is not a pid or + job id + +doc/{bash.1,bashref.texi} + - fixed a slight inconsistency in the different sections describing + the `promptvars' option + +doc/Makefile.in + - new rule to create `bash.info' from `bashref.info' by running sed + to change the internal references. This makes the installed + bash.info work right + - make the install target install bash.info after it's been modified + from bashref.info + + 5/30 + ---- +builtins/cd.def + - after testing with ferror(), call clearerr if ferror() evaluates + to true + +execute_cmd.c + - call clearerr(stdout) after executing a builtin or function, + before restoring any redirections + +bashhist.c + - initialize history_comment_char in bash_history_initialize + +builtins/alias.def + - if posix mode is enabled, and the `-p' option is not supplied, don't + list aliases with a preceding `alias ', as POSIX.2 specifies + +doc/bashref.texi + - note new posix mode behavior of displaying alias names and values + - note new posix mode behavior of trap builtin not checking first + argument to be a possible signal specification + - note new posix mode behavior of `kill' not accepting signal names + with a leading `SIG' + +include/stdc.h,lib/readline/rlstdc.h + - don't check the __STRICT_ANSI__ define when deciding whether or not + to #undef __attribute__ + +trap.[ch] + - decode_signal and signal_object_p take an additional flags arg to + satisfy POSIX.2 signal name translation requirements + - change decode_signal to honor the new DSIG_NOCASE (match case- + insensitively) and DSIG_SIGPREFIX (allow signal specifications + with the `SIG' prefix) flags + +builtins/{common.c,{trap,kill}.def} + - change calls to decode_signal to add the new argument with + appropriate values. For kill, POSIX.2 says case-insensitive without + the `SIG' prefix. For trap, POSIX.2 says applications may decode + case-insensitively and with the SIG prefix + +builtins/trap.def + - when in posix mode, don't check for the first argument being a + possible signal spec and revert the signal handling to the + original disposition + + 6/1 + --- +shell.h + - new MATCH_STARSUB define, to tell the callers of the various pattern + substitution and removal functions that call string_list to treat + "$*" and "${array[*]}" appropriately +subst.c + - if get_var_and_type encounters an array variable subscripted by `*' + or `$*', return VT_STARSUB or'd into the variable type value + - callers of get_var_and_type check for VT_STARSUB in the returned type + this will fix problems with ${*...} not being separated with the + first character of $IFS when double-quoted + - in parameter_brace_patsub, set MATCH_STARSUB if VT_STARSUB is set by + get_var_and_type + - change pos_params_pat_subst to call string_list_dollar_star if + the match flags include MATCH_STARSUB + - change parameter_brace_substring to call array_subrange with an + additional argument indicating the character indexing the array + +array.c + - change array_patsub to join the modified array elements with the + first character of $IFS if MATCH_STARSUB is set in the match flags + passed in + - array_subrange now takes an additional argument indicating the + index type -- used to separate with first char of $IFS if the + index char is `*' and the expression is double-quoted + +array.h + - change prototype declaration of array_subrange to add additional arg + + 6/2 + --- +doc/FAQ + - merged in some updates about POSIX from Andrew Josey + + 6/3 + --- +bashjmp.h + - new value for jump_to_top_level: ERREXIT + +{eval,shell,subst,trap}.c,builtins/evalstring.c + - ERREXIT is (for now) equivalent to EXITPROG as a value from + jump_to_top_level + + 6/9 + --- +doc/bash.1,lib/readline/doc/readline.3 + - documented new `show-all-if-unmodified' readline variable + + 6/14 + ---- +lib/readline/history.c + - new function, histdata_t free_history_entry (HIST_ENTRY *h), + frees H and its line, returning the application-specific data + - use free_history_entry where appropriate + +lib/readline/history.h + - extern declaration for free_history_entry() + +lib/readline/doc/{history.3,hstech.texi} + - document free_history_entry + + 6/16 + ---- +lib/readline/readline.[ch] + - changed varions defines for readline/history library versions to 5.0 + +subst.c + - pass information about whether or not an indirectly-expanded variable + contains ${array[@]}, ${array[*]}, $@, or $* + - new function, chk_atstar, performs checks for ${array[@]}, + ${array[*]}, $@, or $* for the parameter_brace_expand* functions and + sets flags (passed as args) to the results + - call chk_atstar from parameter_brace_expand_indir and + parameter_brace_expand + + 6/28 + ---- +doc/{bash.1,bashref.texi} + - clarified that (...) commands are executed in a subshell environment + + 6/30 + ---- +lib/readline/bind.c + - fix a problem with parsing nested if statements in inputrc files + (fix from dimakar@yahoo.com) + + 7/3 + --- +{jobs,nojobs}.c + - fix places that use the return value from strsignal() to check + for NULL return values using a new function, j_strsignal() + +builtins/kill.def + - removed JOB_CONTROL restriction; kill is now available as a builtin + when the shell is built without job control + + 7/10 + ---- +jobs.c + - some systems have WIFCONTINUED but not WCONTINUED; separate the + #defines + + 7/14 + ---- +lib/readline/history.h + - new `timestamp' member of a HIST_ENTRY + - extern declarations for add_history_time and history_get_time + +lib/readline/doc/{history.3,hstech.texi} + - document add_history_time and history_get_time + +lib/readline/history.c + - implementations of history_get_time and add_history_time + - change add_history to initialize the timestamp information + - change free_history_entry to free the timestamp + - change replace_history_entry to duplicate the timestamp + - change history_total_bytes to add the memory taken by the time + stamps + +bashhist.c,builtins/history.def + - use free_history_entry where appropriate + +lib/readline/histfile.c + - changes to read_history_range to deal with new history file format + including timestamps + - changes to history_do_write to write out the timestamp information + - changes to history_truncate_file to understand the timestamp + information + + 7/22 + ---- +doc/{bash.1,bashref.texi} + - fixed function declaration documentation to specify that any compound + command may be used as the function body, not just a group command + + 7/23 + ---- +lib/readline/histfile.c + - don't allocate space for null timestamps in history_do_write, and + don't write out null timestamp entries + +parse.y + - fix CHECK_FOR_RESERVED_WORD to call time_command_acceptable() and + return TIME if the token is "time" and `time' is legal in that + context + + 7/29 + ---- +lib/sh/fmtulong.c + - include <inttypes.h> for possible definitions of intmax_t, uintmax_t + (reported by ro@techfak.uni-bielefeld.de) + + 7/30 + ---- +parse.y + - remove checking for `time' reserved word from special_case_tokens(); + use regular mechanism in CHECK_FOR_RESERVED_WORD. This allows `time' + to be aliased. (Reported by Glenn Morris + <gmorris+gmane@ast.cam.ac.uk>) + + 7/31 + ---- +lib/readline/history.h + - extern declaration for history_write_timestamps + +lib/readline/histfile.c + - don't write timestamps to the history file in history_do_write + unless history_write_timestamps is set to non-zero by the application + (set to 0 by default) + +lib/readline/doc/{hstech.texi,history.3} + - document history_write_timestamps + +variables.[ch] + - new special variable function, HISTTIMEFORMAT; special function + sets history_write_timestamps to 1 if HISTTIMEFORMAT is set + + 8/4 + --- +builtins/history.def + - added support for printing time stamps based on the value of the + HISTTIMEFORMAT variable when displaying history entries + +doc/{bash.1,bashref.texi} + - added description of new HISTTIMEFORMAT variable + + 8/5 + --- +config-top.h + - remove /usr/ucb from any default paths + +mailcheck.c + - make_default_mailpath now returns NULL if DEFAULT_MAIL_DIRECTORY + is not defined + - remember_mail_dates now returns if make_default_mailpath returns + NULL + +config-bot.h + - reorganized the sections; provide an explicit placeholder for + builders to #undef any feature defines they don't want that + configure creates for them, like the default mail path + + 8/9 + --- +config.h.in + - add HAVE_REGEX_H, HAVE_REGCOMP, HAVE_REGEXEC for detection of POSIX.2 + regular expression functions + - add COND_REGEXP define to enable and disable the =~ operator for + matching extended regular expressions in [[...]] commands + +configure.in + - new option, --enable-cond-regexp, enables =~ and code to perform + regular expression matching in [[...]] + +config-bot.h + - undef COND_REGEXP if the OS doesn't provide posix regexp support + +doc/bashref.texi + - documnent new --enable-cond-regexp option to configure + + 8/18 + ---- +support/shobj-conf + - support for shared objects on FreeBSD-gnu (from Robert Millan) + + 8/25 + ---- +lib/sh/shmatch.c + - new file, shell interface to posix extended regular expression + matching + +externs.h + - new extern declarations for functions in shmatch.c + +execute_cmd.c + - incorporate code into execute_cond_node that does extended regular + expression matching for the =~ operator + +parse.y + - add `=~' to the list of binary operators accepted by the conditional + command parser + +doc/{bash.1,bashref.texi} + - documented =~ conditional binary operator and the BASH_REMATCH + variable + + 8/27 + ---- +lib/readline/display.c + - take multibyte characters into account when looking for quoted + substrings on which to do completion (fix from jir@yamato.ibm.com) + +lib/readline/util.c + - fix typo in _rl_strpbrk + +lib/readline/rldefs.h + - use function version of _rl_strpbrk in multibyte locales, because + it understands to skip over special characters in multibyte + character sequences + + 8/28 + ---- +jobs.c + - in wait_for, check for window size changes if a job that exits due + to a signal or is stopped was in the foreground, not just if it's + the current job + + 9/10 + ---- +support/config.{guess,sub} + - add support to recognize FreeBSD running on the amd64 + +subst.c + - if the new `fail_glob_expansion' variable is non-zero, globbing that + fails to match anything causes an expansion error + +builtins/shopt.def + - new `failglob' expansion: if enabled, failed globs cause an error + +test/shopt.right + - take `failglob' into account + +doc/{bash.1,bashref.texi} + - documented new `failglob' option and its effects + + 9/12 + ---- +findcmd.c + - fix file_status to treat the mode bits and uid right -- in particular, + don't assume the `other' bits always apply. Bug reported by + <moseley@hank.org>; fix inspired by <carlo@alinoe.com> + +command.h + - new word flag: W_NOCOMSUB, meaning to not perform command + substitution on a word + +subst.c + - new flag for param_expand: PF_NOCOMSUB. If non-zero, $(...) + command substitutions are not expanded, but returned unchanged + - change expand_word_internal to pass through `` command substitutions + unchanged if (word->flags & W_NOCOMSUB) != 0 + - change expand_word_internal to pass PF_NOCOMSUB to param_expand + if (word->flags & W_NOCOMSUB) != 0 + +builtins/shopt.def + - rename set_interactive_comments to set_shellopts_after_change, which + more accurately reflects its purpose + +syntax.h + - add a define for isblank() in case the system doesn't provide one + +jobs.c + - change raw_job_exit_status to understand `pipefail', using the new + `pipefail_opt' variable + +flags.[ch] + - declare pipefail_opt + - reset pipefail_opt to 0 in reset_shell_flags + +builtins/set.def + - add `set -o pipefail' and document it in help output + +doc/{bash.1,bashref.texi} + - document `set -o pipefail' and the effect of the pipefail option + +mksyntax.c,syntax.h + - sh_syntaxtab is no longer `const' + - new generated variable, sh_syntabsiz, set to number of entries in + sh_syntaxtab, written to generated syntax.c + +locale.c + - new function, locale_setblanks(), sets each member of the current + locale's <blank> class to have the CSHBRK flag in sh_syntaxtab + + 9/17 + ---- +arrayfunc.c + - change convert_var_to_array to not set array[0] to a NULL value + (if the scalar variable had no value; e.g., after being created + with `local arrayvar') + +lib/readline/display.c + - save and restore the value of prompt_invis_chars_first_line in + rl_{save,restore}_prompt, and reinitialize it to 0 before printing + something in the message area + +lib/readline/bind.c + - new functions: rl_bind_keyseq_if_unbound_in_map(ks, func, kmap); + binds key sequence KS to function FUNC in keymap KMAP, and + rl_bind_keyseq_if_unbound (ks, func); binds key sequence KS to + function FUNC in the current keymap + +lib/readline/readline.h + - extern function declarations for rl_bind_keyseq_if_unbound_in_map and + rl_bind_keyseq_if_unbound + +lib/readline/{readline,terminal}.c + - _rl_bind_if_unbound -> rl_bind_keyseq_if_unbound + +lib/readline/{bind.c,rlprivate.h} + - remove _rl_bind_if_unbound + + 9/18 + ---- +lib/readline/doc/rltech.texi + - document rl_bind_keyseq_if_unbound and + rl_bind_keyseq_if_unbound_in_map + + 9/19 + ---- +lib/readline/bind.c + - new functions rl_bind_key_if_unbound_in_map and + rl_bind_key_if_unbound; analogous to (and implemented in terms of) + keyseq functions + - rl_bind_keyseq_in_map: a new function, equivalent to rl_set_key + (which remains for backwards compatibility); changed callers to + use it + - new function, rl_bind_keyseq, equivalent to rl_bind_keyseq_in_map + with a third argument of _rl_keymap + +lib/readline/readline.h + - extern declarations for rl_bind_key_if_unbound_in_map and + rl_bind_key_if_unbound + - extern declarations for rl_bind_keyseq_in_map and rl_bind_keyseq + +lib/readline/doc/rltech.texi + - document rl_bind_keyseq and rl_bind_keyseq_in_map + +configure.in + - require at least readline-5.0 + +config-bot.h + - define SYS_SIGLIST_DECLARED if it's not defined, but + HAVE_DECL_SYS_SIGLIST is, to deal with differences between + autoconf versions + +bashline.c + - use rl_bind_key_if_unbound_in_map when binding bash keybindings in + initialize_readline(), so inputrc files can override them + + 9/22 + ---- +lib/readline/histsearch.c + - do better bounds checking for history_offset and history_length in + history_search_internal + +builtins/history.def + - in delete_last_history(), make sure we don't leave the history + offset longer than the history length after calling delete_histent + + 9/23 + ---- +jobs.c + - small change to notify_of_job_status so job status messages get + printed even if the shell was started to run `-c command'. The + old behavior was intentional, but I cannot remember why, so we'll + try it the other way for a while (debian bash bug #211693) + + 9/24 + ---- +jobs.c + - slightly modify change from 9/23 so that jobs started to run + command substitutions don't print job status messages + + 9/25 + ---- +lib/readline/search.c + - when reading a non-incremental search string from the terminal, + use a separate undo list rather than chaining it to the undo list + from the rest of the line, since the whole undo list will get + freed when the search string is complete + +lib/readline/readline.h + - changed the defines guarding the stdarg prototype for rl_message to + match what's actually used in display.c, where it's defined + + 9/26 + ---- +[bash-3.0-alpha released] + + 9/29 + ---- +lib/sh/shmatch.c + - fix to build correctly when arrays are not compiled into the shell + +subst.c + - fix command substitution to run any exit trap defined in the + command substitution before returning; the exit trap is not inherited + from the calling shell + +lib/readline/shell.c + - change sh_set_lines_and_columns to free the memory allocated and + passed to setenv(), since setenv is specified by POSIX to allocate + new memory and copy its arguments + +jobs.c + - change logic in make_child so that every child process attempts to + set the terminal's process group to the pipeline's process group + when PGRP_PIPE is defined, just like when it's undefined. This is + reported to fix some tricky synchronization problems on Red Hat + Enterprise Linux 3. Fix from Ernie Petrides <petrides@redhat.com>. + + 9/30 + ---- +builtins/printf.def + - tescape no longer needs a `trans_squote' argument, since it's the + same as the `sawc' argument. The `sawc' argument now means to do + the %b argument processing if non-null + - fix processing of octal constants for %b arguments (\0 followed by + up to three octal digits) and other escape sequences (\ followed by + up to three octal digits) + - hex constants `\xHHH' are now allowed to contain any positive + number of digits; previously they were restricted to two [removed] + - allow two new escape sequences: \" and \?, for compatibility with + ksh93 and ANSI C + +doc/{bash.1,bashref.texi} + - documented processing that printf performs for arguments to %b + escape sequences + +lib/sh/strtrans.c + - add \" and \? to escape sequences recognized by `echo -e' + + 10/1 + ---- +version.c + - use snprintf instead of sprintf if configure tells us we have it + + 10/3 + ---- +subst.c + - in list_remove_pattern, take into account the fact that one of the + list elements may be NULL, and don't free the result of + remove_pattern() without checking + - in remove_pattern, return savestring(param) if *param == '\0', + since callers expect to free() non-null return values + + 10/4 + ---- +subst.c + - change verify_substring_values to make it clearer that the first + offset deals with array indices and the second deals with numbers + of elements, when doing array subranges with ${a[@]:e1:e2} + +array.c + - change array_subrange to make it explicit that the second offset + argument is a count of the desired number of elements, not an + ending index. This deals with sparse arrays correctly. + + 10/6 + ---- +variables.c + - fix memory leak in assign_in_env + + 10/8 + ---- +subst.c + - in parameter_brace_expand, check that the last characters are `]}' + before checking for ${!array[@]} + +execute_cmd.c,builtins/source.def + - push and pop the args (BASH_ARGV and BASH_ARGC) when executing a + shell function or sourcing a script only when in debugging mode + + 10/11 + ----- +arrayfunc.c + - make sure array_variable_name returns values for the SUBP and LENP + arguments if they're non-null, since callers expect to use them + even if the array subscript is bad + +error.c + - call exit_shell instead of sh_exit from parser_error and + report_error so the right things happen (running exit trap, doing + the right interactive cleanup, etc.) + +lib/readline/complete.c + - new variable, rl_completion_quote_character, set to any quote char + readline thinks it finds before any application completion + function is called + - new variable, rl_completion_suppress_quote, settable by an + application-specific completion function. If set to non-zero, the + completion code does not append a closing quote in append_to_match + +lib/readline/readline.h + - extern declarations for rl_completion_quote_character and + rl_completion_suppress_quote + +bashline.c + - set rl_completion_suppress_quote in command_subst_completion_function + because that would be inserted before any closing "`" or ")", which + is somewhat disconcerting + +lib/readline/doc/rltech.texi + - documented rl_completion_suppress_quote and + rl_completion_quote_character + + 10/13 + ----- +bashhist.c + - use sv_histchars instead of setting history_comment_char directly in + bash_initialize_history so assignments to $histchars made in + ~/.bashrc are honored + + 10/21 + ----- +trap.c + - make sure run_exit_trap sets `running_trap' appropriately + - new variable, trap_saved_exit_value, set to last_command_exit_value + before running any trap commands; available to the rest of the + shell; use trap_saved_exit_value to replace some function-local + variables + +builtins/exit.def + - if the shell is running the exit trap, and no argument is given + to `exit', use trap_saved_exit_value as the exit status instead + of the last command exit value (which could be the previous command + run in the exit trap), as required by POSIX.2 + + 10/25 + ----- +doc/{bash.1,bashref.texi} + - add `alias' to the list of documented `assignment statement' builtins + + 11/1 + ---- +doc/bash.1 + - remove the `.' from the sample $PATH value + +parse.y + - make sure parse_compound_assignment prompts with $PS2 if it reads + a newline while parsing the compound assignment statement. Bug + reported by Stephane Chazelas + - parse_string_to_word_list now takes a new second argument: `int flags' + - new parser state flag: PST_COMPASSIGN; indicates that the shell is + parsing a compound assignment statement + - parse_string_to_word_list turns on PST_COMPASSIGN if `flags' arg + has low bit set + - turn PST_COMPASSIGN on and off in parse_compound_assignment + +externs.h + - change prototype declaration for parse_string_to_word_list + +arrayfunc.c + - change call to parse_string_to_word_list to add new flags arg + +general.c + - assignment() takes a new `flags' second argument + - if `flags' is non-zero, accept `[' as a legal assignment statement + starter character (for parsing compound array assignments) + +general.h + - add new argument to prototype declaration for assignment() + +parse.y,{subst,variables}.c, builtins/{setattr,declare}.def + - change calls to assignment() (parse.y calls with flags == 1 when + parser_state inlcudes PST_COMPASSIGN) + +arrayfunc.c + - in assign_array_var_from_string(), don't treat an expanded word + of the form [ind]=value specially unless the W_ASSIGNMENT flag is + set. This means that words that are the result of expansions but + happen to have the same format as compound assignment statement + words will not be treated as such. For instance + + v='[12]=foobar' + a=( $v ) + + will result in a[0]='[12]=foobar' instead of a[12]=foobar. This + is closer to how `regular' assignment statements are treated and + compatible with ksh93. Bug reported by Stephane Chazelas + +shell.c + - new --protected argument, disables command substitution when used + with --wordexp (like --wordexp, it remains undocumented) + - change run_wordexp to turn on the W_NOCOMSUB flag in each word + to be expanded if protected_mode is set + + 11/7 + ---- +doc/{bash.1,bashref.texi} + - clarified the language concerning inherited signal dispositions and + when traps are run + +support/shobj-conf + - slight changes to the darwin (Mac OS X) stanza for MacOS X 10.3 + (for the readline shared library builds, which shares this script) + +lib/readline/histexpand.c + - change to make `^' behave as equivalent to word one, as csh does, + and as the documentation states + +lib/readline/display.c + - in update_line, make sure to use col_lendiff in all calculations + where the cursor position is concerned (like when calculating + the value of _rl_last_c_pos). Fixes bug reported by Andreas + Schwab + + 11/12 + ----- +trap.c + - make _run_trap_internal catch `return' builtin longjmps and clean + up before longjmping on to where the return was intended to go + (fixes bug with not turning off SIG_INPROGRESS flag when `return' + executed in trap command) + + 11/18 + ----- +builtins/cd.def + - in posix mode, set errno to ENOTDIR if canonicalization fails, + unless the canonicalization functions leave it set to ENOENT + + 11/25 + ----- +make_cmd.c + - in make_simple_command, don't blindly dereference element.redirect + +parse.y + - the list_terminator production now has an `int' value so it can be + used in other grammar productions + - add a rule that makes `time' on a line by itself time a null + command (this is iffy) + + 11/28 + ----- +subst.c + - change the pattern substitution code (${var//pat/rep}) to use the + same pattern expansion function (getpattern()) as the pattern + removal expansions. This has the effect of no longer performing + quote removal on the pattern before trying to match it. This + fixes an incompatibility with ksh93 reported on comp.unix.shell + +nojobs.c + - add replacement function for siginterrupt on the off chance that a + system has posix signals but lacks siginterrrupt + +lib/readline/display.c + - fix from Tim Waugh at Red Hat to speed up inserting characters into + long lines in a UTF-8 environment by optimizing the calculation of + the first difference between old and new lines by checking to see + whether the old line is a subset of the new + + 11/29 + ----- +lib/malloc/stats.c + - break code that opens file (and interprets %p) into separate function + _imalloc_fopen(char *s, char *fn, char *def, char *defbuf, size_t defsiz) + for use by rest of library + - default stats file is now `stats.PID' + +lib/malloc/trace.c + - new function, malloc_set_tracefn (char *s, char *fn), sets tracing + to the file named by FN (with %p interpolated as the pid), using + some default if FN is NULL + +lib/malloc/shmalloc.h + - new extern declaration for malloc_set_tracefn + + 12/4 + ---- +execute_cmd.c + - combined several common strings from do_piping() into one + dup_error() function + +builtins/common.[ch] + - new function, `sh_notbuiltin(s)' prints error message about s not + being a shell builtin + +builtins/{builtin,enable}.def + - call sh_notbuiltin instead of using literal string + +{arrayfunc,expr,error}.c + - use one string variable for `bad array subscript' error message; use + in calls to various error reporting functions + +Makefile.in + - add variables for localedir and the PACKAGE_* variables, auto-set + by configure + +configure.in + - un-cache values for gettext, textdomain, and bindtextdomain if they're + not in libc but in libintl so the right variables get set + +bashintl.h + - add necessary defines for marking strings to be translated using + gettext + +locale.c + - set textdomain and directory in set_default_locale + - don't call textdomain with the value of $TEXTDOMAIN, since we don't + want to override the default domain ("bash") + - don't call bindtextdomain unless default_domain already has a value + - when translating $"..." strings, use dgettext with the script's + default domain (value of $TEXTDOMAIN) + + 12/9 + ---- +builtins/mkbuiltins.c + - include "bashintl.h" in the generated "builtins.c" + +support/{config.rpath,mkinstalldirs} + - new files to support gettext i18n + +ABOUT-NLS + - new readme file for gettext internationalization + +po/{Makefile.in.in,Rules-quot,boldquot.sed,en@boldquot.header,en@quot.header,insert-header.sin,quot.sed,remove-potcdate.sin} +po/{POTFILES.in,bash.pot} + - new files for gettext + +lib/intl + - new directory, with libintl stuff from gettext + +aclocal.m4 + - add m4 files from gettext distribution needed by libintl + +configure.in + - create po/Makefile.in and lib/intl/Makefile in AC_OUTPUT + - add call to AM_GNU_GETTEXT to initialize gettext stuff + +Makefile.in + - use mkinstalldirs instead of mkdirs in the `installdirs' target + - changes for intl/ and po/ subdirectories in build and install + - changes to have libintl linked in, as determined by configure + - changes to have libintl built, just in case it's used (though I'd + rather not) + + 12/10 + ----- +config.h.in + - additional #defines required by the libintl library + - add ENABLE_NLS define for AM_GNU_GETTEXT + - take out defines for HAVE_{BINDTEXTDOMAIN,GETTEXT,TEXTDOMAIN} + +configure.in + - removed old tests for libintl and gettext/textdomain/bindtextdomain + +locale.c + - remove HAVE_GETTEXT code; we have gettext unconditionally now + +bashintl.h + - change to include "gettext.h" and remove the conditional code based + on whether or not gettext is present + + 12/16 + ----- +lib/readline/vi_mode.c + - fix problem with rl_vi_eWord that caused it to skip over the last + character of a word if invoked while point was on the next-to-last + character + + 12/18 + ----- +{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c +{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c +{subst,test,trap,variables,version,xmalloc}.c +parse.y +builtins/{common,evalfile,getopt}.c +builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def +builtins/{hash,help,history,jobs,kill,printf,pushd,read,return,set,setattr}.def +builtins/{shift,shopt,source,suspend,type,ulimit,umask}.def +lib/sh/{fmtulong,netopen}.c + - include "bashintl.h" for gettext defines + +Makefile.in + - add `-DBUILDTOOL' to CFLAGS for buildversion.o + +bashintl.h + - if `BUILDTOOL' is defined, define ENABLE_NLS to 0 so we don't have + to compile and link in the gettext stuff + +Makefile.in,lib/sh/Makefile.in,builtins/Makefile.in + - update dependencies on bashintl.h and include/gettext.h + + 12/19 + ----- +{arrayfunc,bashhist,bashline,error,eval,execute_cmd,expr,general,input,jobs}.c +{mailcheck,make_cmd,nojobs,pcomplete,pcomplib,print_cmd,redir,shell,sig}.c +{subst,test,trap,variables,version,xmalloc}.c +builtins/{common,evalfile,getopt}.c +builtins/{bind,break,caller,cd,complete,declare,enable,exec,exit,fc,fg_bg}.def +builtins/{hash,help,history,jobs,kill,let,printf,pushd,read,return,set}.def +builtins/{setattr,shift,shopt,source,suspend,type,ulimit,umask}.def +lib/sh/{fmtulong,netopen}.c +lib/malloc/{malloc,stats,table,watch}.c + - mark up strings in source files for gettext processing + +lib/malloc/imalloc.h + - include "bashintl.h" if SHELL is defined, otherwise make _(x) an + identity define + +lib/malloc/Makefile.in + - add dependencies on ${topdir}/bashintl.h and ${BASHINCDIR}/gettext.h + + 12/21 + ----- +bashline.c + - make sure we index into rl_line_buffer with indexes > 0 in + attempt_shell_completion + + 12/31 + ----- +Makefile.in + - descend into `po' and run make recursively for the various clean + targets + + 1/4 + --- +include/shmbutil.h + - two new macros: BACKUP_CHAR(str, strsize, i), which backs up one + multibyte character in STR starting at index I, and + BACKUP_CHAR_P(str, strsize, p), which backs up one multibyte + character in STR starting at P, which is a char * + + 1/6 + --- +pcomplete.c + - in pcomp_filename_completion_function, use the quote character + readline found (and assigned to rl_complete_quote_character) when + dequoting the filename by a completion call from readline (when + rl_dispatching != 0) + +bashline.c + - ditto for bash_directory_completion_matches + + 1/7 + --- +lib/readline/complete.c + - new variable, rl_completion_found_quote, set to non-zero value if + readline finds what it thinks is quoting in the word to be completed + +lib/readline/readline.h + - extern declaration for rl_completion_found_quote + + 1/8 + --- +lib/readline/doc/rltech.texi + - documented rl_completion_found_quote + +lib/readline/complete.c + - in compute_lcd_of_matches, if it looks like what the user typed was + dequoted before generating filename matches, dequote the user's + text again before figuring out the case-insensitive lcd + + 1/9 + --- +lib/readline/display.c + - fix from Edward Catmur <ed@catmur.co.uk> to logic that handles + invisible characters in prompt string. Original code was wrong + about local_prompt_prefix; it gave incorrect results when prompt + contained invisible characters after a line break + + 1/10 + ---- +subst.c + - new function, mb_substring(), does character (possibly multibyte) + oriented rather than strictly byte-oriented substring extraction. + The passed indices, rather than strictly indexing into the string, + indicate character positions that need to be calculated. From + Tim Waugh <twaugh@redhat.com> + - change parameter_brace_substring to use mb_substring if necessary + +included/shmbutil.h + - new define SADD_MBQCHAR_BODY, common code for adding a quoted + (preceded by CTLESC) multibyte character to an accumulating string + in the subst.c expansion code + +subst.c + - use SADD_MBQCHAR_BODY in expand_word_internal + - new static function, mb_getcharlens, allocates and returns an array + of character lengths for (possibly multibyte) characters in the + argument string + - change pattern matching operations to use while loops instead of + for loops to handle multibyte characters better (no more simple + increment or decrement) + - change pattern matching operations to use multibyte character + operations instead of simple increments and decrements. Don't + use BACKUP_CHAR_P -- use the mblen array instead, because that + avoids the N**2 behavior of having to count from the beginning + of the string each time you want to back up one character. Changes + to remove_pattern and match_pattern + + 1/12 + ---- +lib/readline/display.c + - make expand_prompt count multbyte characters in the prompt string + by using _rl_find_next_mbchar (and copying possibly more than one + byte) instead of a simple increment and single byte copy + + 1/13 + ---- +lib/readline/display.c + - expand_prompt takes a new reference argument -- it returns + the actual count of (possibly multibyte) characters displayed + on the screen + - don't short-circuit in expand_prompt unless we're not going to + be using any multibyte characters + - change calls to expand_prompt to pass an argument for the + number of physical characters the prompt occupies + (prompt_physical_chars) + - initialize `lpos' (the physical cursor position) from + prompt_physical_chars in rl_redisplay + +lib/readline/mbutil.c + - in _rl_find_prev_mbchar_internal, if mbrtowc returns -1 or -2, and + we assume that the character is a single-byte char, make sure we + update `prev' so it doesn't get lost. Fixes problems encountered + when a non-ascii char is the last char on the line and we're moving + back past it with ^B, and other display problems caused by the same + situation + + 1/15 + ---- +lib/readline/doc/rltech.texi + - document RL_PROMPT_START_IGNORE and RL_PROMPT_END_IGNORE in the + description of rl_expand_prompt() + + 1/20 + ---- +bashline.c + - in initialize_readline, make sure M-C-j and M-C-m are still bound to + vi-editing-mode before unbinding them -- they may have been rebound + in an inputrc + +variables.c + - in unbind_variable, unset attributes other than `local' and exported + (if the variable came from a temporary environment) when unsetting a + local variable inside a function + + 1/21 + ---- +configure.in + - add libintl build directory to the list of include directories if + it's being built (using INTL_BUILDDIR) + +Makefile.in,{builtins,lib/{sh,malloc}}/Makefile.in + - substitute LIBBUILD as ${BUILD_DIR}/${LIBSUBDIR} + - define INTL_BUILDDIR as ${LIBBUILD}/intl + +{builtins,lib/sh}/Makefile.in + - make sure INTL_INC is added to the list of include directories + - make sure INTL_LIBSRC is defined with the correct value + +{configure,Makefile,{builtins,lib/sh}/Makefile}.in + - substitute LIBINTL_H as ${INTL_BUILDDIR}/libintl.h + +Makefile.in,builtins/Makefile.iin + - all files depending on bashintl.h also depend on ${LIBINTL_H} + (which may be empty) + +Makefile.in + - make a rule telling how to build lib/intl/libintl.h if necessary + + 1/24 + ---- +builtins/read.def + - make sure that the array name supplied as an argument to -a is a + valid identifier + +parse.y + - make the \W expansion abbreviate $HOME with a ~ (seems to be more + useful) + +doc/{bash.1,bashref.texi} + - document new behavior of \W + +subst.c + - make sure parameter_brace_expand_rhs uses the first character of + $IFS when making the string to return from the expanded word + (which, in the case of "$@" or $@, contains multiple words that + need to be separated) + + 1/25 + ---- +builtins/common.c + - change get_job_spec to make `%' by itself or an empty argument + return NO_JOB + +jobs.h + - new possible value for a job spec return value: BAD_JOBSPEC + (for syntactically invalid specs, like the empty string) + +shell.c + - in open_shell_script, check to see whether or not we can find and + open the filename argument before setting dollar_vars[0] or + manipulating BASH_SOURCE, so the error messages come out better + +subst.c + - in string_list_internal, short-circuit right away to savestring() + if the list only has a single element + + 1/28 + ---- +lib/readline/rltypedefs.h + - new set of typedefs for functions returning char * with various + arguments (standard set) + +lib/readline/complete.c + - new function pointer, rl_completion_word_break_hook, called by + _rl_find_completion_word, used to set word break characters at + completion time, allowing them to be position-based + +lib/readline/doc/rltech.texi + - documented rl_completion_word_break_hook + +lib/readline/kill.c + - added new rl_unix_filename_rubout, which deletes one filename + component in a Unix pathname backward (delimiters are whitespace + and `/') + +lib/readline/readline.h + - extern declaration for rl_unix_filename_rubout + +lib/readline/funmap.c + - new bindable readline command `unix-filename-rubout' + +lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 + - documented `unix-filename-rubout' + + 1/29 + ---- +lib/readline/histexpand.c + - change history_tokenize_internal to handle non-whitespace delimiter + characters by creating separate fields (like the shell does when + splitting on $IFS) + + 1/30 + ---- +lib/glob/xmbsrtowcs.c + - new function, xdupmbstowcs, for convenience: calls xmbsrtowcs + while allocating memory for the new wide character string + - some small efficiency improvments to xmbsrtowcs + +include/shmbutil.h + - extern declaration for xdupmbstowcs + +lib/glob/strmatch.h + - include config.h for definition of HANDLE_MULTIBYTE + - remove the HAVE_LIBC_FNM_EXTMATCH tests + - new extern declaration for wcsmatch(whchar_t *, wchar_t *, int) + +configure.in + - remove call to BASH_FUNC_FNMATCH_EXTMATCH; it's no longer used + +lib/glob/smatch.c + - simplify xstrmatch() by using xdupmbstowcs() instead of inline code + +lib/glob/glob.c + - modify mbskipname() to avoid the use of alloca + - simplify mbskipname() by using xdupmbstowcs() instead of inline code + - simplify glob_pattern_p() by using xdupmbstowcs() instead of + inline code + - fix memory leak in wdequote_pathname + - simplify wdequote_pathname() by using xdupmbstowcs() instead of + inline code + +lib/glob/strmatch.c + - new function, wcsmatch(), `exported' wide-character equivalent of + strmatch() + +subst.c + - old match_pattern is now match_upattern + - match_pattern now either calls match_upattern or converts + mbstrings to wide chars and calls match_wpattern + - match_upattern reverted to old non-multibyte code + - new function: match_pattern_wchar, wide character version of + match_pattern_char + + 2/1 + --- +subst.c + - old remove_pattern is now remove_upattern + - remove_upattern reverted to old non-multibyte code (pre-Waugh patch) + - new multibyte version of remove_pattern: remove_wpattern + - remove_pattern now calls either remove_upattern or converts a + multibyte string to a wide character string and calls + remove_wpattern + - new function, wcsdup, wide-character version of strdup(3) + + 2/4 + --- +print_cmd.c + - temporarily translate a >&filename redirection from + r_duplicating_output_word to r_err_and_out (as the expansion code + in redir.c does) so it prints without a leading `1' (file + descriptor) + + 2/5 + --- +aclocal.m4 + - add a check for wcsdup to BASH_CHECK_MULTIBYTE + +config.h.in + - add HAVE_WCSDUP define + + 2/9 + --- +builtins/shift.def + - fix a call to sh_erange that possibly dereferences a NULL pointer + + 2/12 + ---- +general.c + - start at a general set of file property checking functions: + file_isdir(), file_iswdir() (is writable directory) + +general.h + - extern declarations for new functions + +lib/sh/tmpfile.c + - use file_iswdir() to make sure the temporary directory used for + here documents and other temp files is writable in get_sys_tmpdir() + + 2/17 + ---- +bashline.c + - fix conditional binding of emacs-mode M-~ -- there is a default + binding for it (rl_tilde_expand), so a straight call to + rl_bind_key_if_unbound_in_map doesn't do the right thing + + 2/27 + ---- +[bash-3.0-beta1 released] + + 2/29 + ---- +subst.c + - fixed expansion so referencing $a, when a is an array variable + without an element assigned to index 0, exits the shell when + `-u' is enabled + +expr.c + - make the exponentiation operator (**) associative, so things like + 2**3**4 work right (change `if' to `while') + + 3/3 + --- +lib/sh/strftime.c + - SCO Unix 3.2, like Solaris, requires that the system's `timezone' + variable be declared as long + +lib/readline/{bind,histfile,input,parens}.c + - changes for Tandem (including `floss.h' (?)) + + 3/4 + --- +subst.c + - change param_expand to quote the entire expanded string instead + of just the escape characters if the expansion appears between + double quotes or in a here-document (for simple variable expansions + or expansions of positional parameters) + + 3/8 + --- +subst.c + - analogous changes to parameter_brace_expand_word to fix the same + quoting problem as on 3/4; fix callers to understand that the + value returned might be quoted now and should be dequoted if + necessary + - add a `quoted' argument to get_var_and_type, change callers + - change today's fix and fix from 3/4 to not call quote_string if the + value is "" (because quote_string turns that into CTLNUL\0) + + 3/9 + --- +builtins/cd.def + - resetpwd() now takes a `caller' argument so it can be used by pwd + as well as cd + - change pwd_builtin to call resetpwd() if sh_physpath() fails to + return a valid pathname + + 3/14 + ---- +expr.c + - reworked exp0 and readtok() to make post-increment and post-decrement + into real tokens, which may be separated from their accompanying + variables by whitesapce + - made analogous changes to readtok() to make pre-increment and + pre-decrement work when separated from their accompanying identifier + by whitespace + + 3/18 + ---- +lib/readline/misc.c + - in rl_maybe_unsave_line, don't force rl_replace_line to clear + the undo_list, since it might point directly at an undo list + from a history entry (to which we have no handle) + + 3/19 + ---- +lib/readline/display.c + - rl_save_prompt and rl_restore_prompt now save and restore the value + of prompt_physical_chars + - set prompt_physical_chars in rl_redisplay when expand_prompt has + not been called (e.g., when rl_display_prompt is set and is not + equal to rl_prompt, like when searching) + +lib/readline/histexpand.c + - don't call add_history in history_expand if the `:p' modifier is + supplied; leave that to the calling application. This means that + `history -p', for example, will not add anything to the history + list (as documented), nor will history expansions invoked by + emacs-mode M-C-e line editing + +config-bot.h + - check whether HAVE_DECL_SYS_SIGLIST is defined to 1 rather than just + defined, to work around newer versions of autoconf defining it to 0 + +config.h.in + - change default status of HAVE_MALLOC to #undef instead of #define + +bashhist.c + - extern declarations for rl_done and rl_dispatching + - don't call re_edit from pre_process_line unless rl_dispatcing is zero, + so we don't call it from something like shell-expand-line + - change pre_process_line to add an expanded history specification + that returned `print only' to the history list, since history_expand + no longer does it (and, when using readline, do it only when + rl_dispatching is zero) + + 3/22 + ---- +config.h.in,aclocal.m4 + - change bash-specific functions that look in struct dirent to define + HAVE_STRUCT_DIRENT_xxx, like AC_CHECK_MEMBERS does (though the + functions are otherwise the same) + - new function, BASH_STRUCT_DIRENT_D_NAMLEN, define + HAVE_STRUCT_DIRENT_D_NAMLEN if struct dirent has a `d_namlen' member + +configure.in + - call BASH_STRUCT_DIRENT_D_NAMLEN + +include/posixdir.h + - use new and renamed HAVE_STRUCT_DIRENT_D_xxx defines + + 4/7 + --- +builtins/cd.def + - ensure that we print out a non-null pathname after getting a + directory from CDPATH and canonicalizing it (e.g., if the result + exceeds PATH_MAX in length and the_current_working_directory is + set to NULL) + + 4/12 + ---- +print_cmd.c + - new function to print out assignment statements when `set -x' has + been enabled: xtrace_print_assignment + +externs.h + - extern declaration for xtrace_print_assignment + + 4/13 + ---- +{subst,variables}.c + - call xtrace_print_assignment instead of using inline code + +jobs.c + - if turning on job control when it was previously off, set + pipeline_pgrp to 0 in set_job_control so make_child puts + subsequent children in their own process group + + 4/14 + ---- +general.c + - new function, legal_alias_name, called to decide whether an + argument to add_alias is a valid alias name -- essentially any + character except one which must be quoted to the shell parser + and `/' + +general.h + - new extern declaration for legal_alias_name + +builtins/alias.def + - `unalias' now returns failure status if no NAME arguments are + supplied and -a is not given + - call legal_alias_name to make sure alias name is valid before + calling add_alias from alias_builtin + + 4/19 + ---- +include/shmbutil.h + - include <config.h> for definition of HANDLE_MULTIBYTE rather than + duplicating logic + + 4/20 + ---- + +doc/{bash.1,bashref.texi} + - make sure $0 is consistently referred to as a `special parameter' + - document which characters are now not allowed in alias names + + 4/23 + ---- + +builtins/{jobs,kill,wait}.def + - removed requirement that job control be enabled to use job control + notation, as SUSv3 implies + +subst.c + - based on a message from David Korn, change param_expand to not call + string_list_dollar_star if the only quoting is Q_HERE_DOCUMENT -- + quoted here documents are like double quoting, but not exactly + - analogous changes to list_remove_pattern and pos_params + + 4/24 + ---- +lib/readline/doc/rluser.texi + - fix error in description of emacs-mode C-xC-e command (uses $VISUAL + instead of $FCEDIT) + + 4/28 + ---- +support/bashbug.sh + - integrate a patch from Stefan Nordhausen + <nordhaus@informatik.hu-berlin.de> that reduces race conditions + by using a temporary directory inside $TMPDIR and creating the + temp files in that + + 4/30 + ---- +builtins/common.c + - use pathconf(".", _PC_PATH_MAX) where available to size the argument + to getcwd() rather than using a straight PATH_MAX + +builtins/cd.def + - if get_working_directory fails and returns null (causing resetpwd + to return NULL), use set_working_directory to set $PWD to the + absolute pathname for which chdir just succeeded + + 5/1 + --- +lib/readline/vi_mode.c + - in rl_vi_change_to, call _rl_vi_set_last with rl_numeric_arg instead + of `last', since they're equal at call time and rl_vi_domove can + change rl_numeric_arg (which vi apparently updates). Fixes redo bug + of `c2....' reported by Marion Berryman <mwberryman@copper.net> + + 5/4 + --- +parse.y + - fix decode_prompt_string to properly deal with strftime() returning 0 + + 5/6 + --- +variables.c + - in make_local_array_variable, return an already-existing local array + variable immediately rather than creating a new array (causing a + memory leak) + + 5/8 + --- +lib/readline/vi_mode.c + - change rl_vi_domove to set rl_explicit_arg before calling + rl_digit_loop1 so that multi-digit numeric arguments work right + - _rl_vi_last_command is no longer static + +lib/readline/rlprivate.h + - new extern declaration for _rl_vi_last_command + +lib/readline/text.c + - change rl_newline to only call _rl_vi_reset_last if the last command + (_rl_vi_last_command) is not a text modification command. This lets + the last-command and last-argument work across command lines + + 5/13 + ---- +builtins/common.c + - use getcwd(0,0) rather than providing a fixed pathname with a fixed + length (PATH_MAX) so getcwd() will allocate sufficient memory + +aclocal.m4 + - change BASH_FUNC_GETCWD to check whether or not getcwd(0,0) will + allocate memory for the returned value -- nobody implements that + and getcwd-via-popen, so it should capture the old test as well + + 5/27 + ---- + +builtins/trap.def + - the historical behavior of assuming that a signal's handling should + be set to its original disposition is only in effect if a single + argument is given, otherwise the first argument is assumed to be a + command to execute + - when in posix mode, if trap gets a single argument, display an + error message and return EX_USAGE + - change the help message and usage string to better explain trap's + behavior + +doc/{bash.1,bashref.texi} + - describe the new default behavior when the first argument is a + signal spec + - note that signal names are case insensitive and the SIG prefix is + optional in arguments to `trap' + - note that signal name arguments to `kill' are case-insensitive + +lib/readline/display.c + - make sure rl_on_new_line_with_prompt sets rl_display_prompt to + rl_prompt (just to make sure it's set) + - have rl_on_new_line_with_prompt use local_prompt if it's set + + 6/2 + --- +subst.c + - in string_extract_double_quoted, cope with extract_delimited_string + returning NULL, as it can when attempting completion on an unclosed + command substitution + + 6/24 + ---- +lib/readline/complete.c + - change print_filename to add a `/' to listed directory names if + `mark-directories' has been enabled + +builtins/umask.def + - make sure that the mask passed to parse_symbolic_mode has all but + the operative low eight bits masked off, to avoid complementing + all 0s to -1, which is the error return code. This makes things + like `a=rwx' and `ugo=rwx' work and turn off the umask + + 6/26 + ---- +builtins/getopts.def + - when `getopts' reaches the end of options, unset OPTARG before + returning EOF. In response to a bug report from Apple + +configure.in + - when cross-compiling, don't set CPPFLAGS_FOR_BUILD and + LDFLAGS_FOR_BUILD from CPPFLAGS and LDFLAGS, respectively, since + those are for the target instead of the build platform (report + from robert@schwebel.de) + +shell.c + - a shell whose standard error (but not standard output) is directed + to a terminal should be interactive, according to POSIX/SUS. This + means that sh > sh.out will start an interactive shell. Bug report + from llattanzi@apple.com + +doc/{bash.1,bashref.texi} + - change mention of standard output to standard error in definition + of interactive shell + +lib/readline/vi_mode.c + - new convenience function, rl_vi_start_inserting, calls + _rl_vi_set_last to save the last textmod command state and then calls + rl_vi_insertion_mode to enter insert mode + - change functions to use rl_vi_start_inserting + +lib/readline/readline.h + - extern declaration for rl_vi_start_inserting + +bashline.c + - new function for vi-mode completion, bash_vi_complete. Does + filename expansion as POSIX specifies, unlike the default readline + bindings (which don't know about globbing). Bound to `\', `*', + and `=' in vi command keymap. Internals very similar to + rl_vi_complete; just calls bash glob expansion functions + +lib/readline/vi_mode.c + - change rl_vi_change_char so that an entire change is a single + undoable event, rather than each individual change in a [count]r + command + - fix rl_vi_change_char so that replacing characters up to EOL works + rather than generating rl_ding + - fix rl_vi_change_case so that replacing characters up to EOL works + rather than generating rl_ding + + 6/28 + ---- +builtins/echo.def + - call clearerr(stdout) before writing anything and testing its + failure or success + + 6/29 + ---- +bashline.c + - only set rl_explicit_arg in bash_glob_complete_word if readline is + in emacs mode; let bash_vi_complete take care of setting it in vi + mode + - fix bash_vi_complete to only set rl_explicit_arg unless the posix + conditions are met: no globbing characters in the vi `bigword' + being completed + + 6/30 + ---- +[bash-3.0-rc1 released] + + 7/1 + --- +lib/readline/complete.c + - make sure `extension_char' is initialized before deciding whether + or not the append a `/' to a possible completion when visible-stats + is not enabled + + 7/2 + --- +subst.c + - fix a boundary overrun in string_extract_double_quoted that could + occur when the word completion code attempts to expand an incomplete + construct (like a quoted unclosed command substitution) + + 7/4 + --- +subst.c + - set tempenv_assign_error to non-zero if an assignment to the + temporary environment fails for some reason (e.g., attempted + assignment to a readonly variable) + +execute_cmd.c + - fix execute_simple_command to force a non-interactive shell in + POSIX mode to exit if an assignment to the temporary environment + preceding a special builtin fails (bug report from + llattanzi@apple.com) + + 7/5 + --- +bashline.c + - in bash_directory_completion_hook, don't perform word expansions + if the filename appears to have been completed from the file + system rather than typed in by the user. Bug reported by Tim + Waugh <twaugh@redhat.com> + + 7/7 + --- +lib/readline/misc.c + - if _rl_maybe_save_line is being asked to save a line other than + what's already saved, free up the current saved line and save the + current contents of rl_line_buffer. Bug reported by + llattanzi@apple.com + + 7/12 + ---- +lib/readline/input.c + - do better EOF detection in rl_gather_tyi -- if a read returns 0 when + the fd is in non-blocking mode, stuff an EOF into the input stream + (reported by mattias@virtutech.se) + + 7/13 + ---- +lib/readline/vi_mode.c + - make sure rl_vi_put honors `count' arguments and yanks things + multiple times if requested + + 7/16 + ---- +builtins/umask.def + - make sure that the `who' part of the umask symbolic mode argument + defaults to `a' if it's missing + +flags.c + - make sure that maybe_make_restricted only gets called after the + shell is initialized, so `bash -r' doesn't result in inappropriate + error messages + +[bash-3.0 frozen] |