From bb579650a505e082ac41018fe3ceba62b2a35cd8 Mon Sep 17 00:00:00 2001 From: Chet Ramey Date: Thu, 16 Jan 2014 14:30:22 -0500 Subject: [PATCH] commit bash-20140110 snapshot --- CHANGES | 54 + CWRU/CWRU.chlog | 94 + CWRU/CWRU.chlog~ | 5677 ++++++++++++ bashline.c | 7 +- builtins/declare.def | 45 +- builtins/setattr.def | 4 + doc/bash.1 | 24 +- doc/bash.pdf | Bin 311985 -> 312382 bytes doc/bash.ps | 3736 ++++---- doc/bashref.dvi | Bin 720864 -> 721324 bytes doc/bashref.fn | 3 +- doc/bashref.fns | 3 +- doc/bashref.log | 8 +- doc/bashref.pdf | Bin 463859 -> 463398 bytes doc/bashref.texi | 2 +- doc/bashref.tmp | 2 +- doc/version.texi | 8 +- jobs.c | 2 +- lib/readline/doc/history.3 | 8 +- lib/readline/doc/history.dvi | Bin 86016 -> 85108 bytes lib/readline/doc/history.html | 8 +- lib/readline/doc/history.info | 69 +- lib/readline/doc/history.log | 115 +- lib/readline/doc/history.ps | 7716 ++++++++++------ lib/readline/doc/history.texi | 2 +- lib/readline/doc/history.tmp | 18 +- lib/readline/doc/hstech.texi | 2 +- lib/readline/doc/hsuser.texi | 2 +- lib/readline/doc/readline.3 | 27 +- lib/readline/doc/readline.dvi | Bin 300184 -> 313452 bytes lib/readline/doc/readline.html | 2134 +++-- lib/readline/doc/readline.info | 617 +- lib/readline/doc/readline.ps | 14298 ++++++++++++++++++------------ lib/readline/doc/rlman.aux | 41 +- lib/readline/doc/rlman.cp | 2 +- lib/readline/doc/rlman.cps | 2 +- lib/readline/doc/rlman.fn | 267 +- lib/readline/doc/rlman.fns | 263 +- lib/readline/doc/rlman.log | 186 +- lib/readline/doc/rlman.texi | 2 +- lib/readline/doc/rlman.tmp | 18 +- lib/readline/doc/rlman.toc | 33 +- lib/readline/doc/rltech.texi | 2 +- lib/readline/doc/rluser.texi | 16 +- lib/readline/doc/rluserman.aux | 2 +- lib/readline/doc/rluserman.dvi | Bin 102724 -> 105000 bytes lib/readline/doc/rluserman.fn | 50 +- lib/readline/doc/rluserman.fns | 50 +- lib/readline/doc/rluserman.html | 466 +- lib/readline/doc/rluserman.info | 141 +- lib/readline/doc/rluserman.log | 150 +- lib/readline/doc/rluserman.ps | 8186 ++++++++++------- lib/readline/doc/rluserman.texi | 2 +- lib/readline/doc/rluserman.tmp | 18 +- lib/readline/doc/rluserman.toc | 2 +- lib/readline/doc/rluserman.vr | 18 +- lib/readline/doc/rluserman.vrs | 18 +- lib/readline/doc/version.texi | 8 +- lib/readline/signals.c | 2 +- po/af.gmo | Bin 1244 -> 1244 bytes po/af.po | 202 +- po/bash.pot | 202 +- po/bg.gmo | Bin 34668 -> 34668 bytes po/bg.po | 202 +- po/ca.gmo | Bin 9739 -> 9739 bytes po/ca.po | 202 +- po/cs.gmo | Bin 168005 -> 168005 bytes po/cs.po | 202 +- po/da.gmo | Bin 102350 -> 102350 bytes po/da.po | 202 +- po/de.gmo | Bin 71280 -> 71280 bytes po/de.po | 202 +- po/el.gmo | Bin 37185 -> 37185 bytes po/el.po | 202 +- po/en@boldquot.gmo | Bin 165240 -> 165718 bytes po/en@boldquot.po | 210 +- po/en@quot.gmo | Bin 163656 -> 164126 bytes po/en@quot.po | 210 +- po/eo.gmo | Bin 156067 -> 156067 bytes po/eo.po | 202 +- po/es.gmo | Bin 124201 -> 124201 bytes po/es.po | 202 +- po/et.gmo | Bin 12133 -> 12133 bytes po/et.po | 202 +- po/fi.gmo | Bin 104376 -> 104376 bytes po/fi.po | 202 +- po/fr.gmo | Bin 128012 -> 128012 bytes po/fr.po | 202 +- po/ga.gmo | Bin 58471 -> 58471 bytes po/ga.po | 202 +- po/gl.gmo | Bin 63233 -> 63233 bytes po/gl.po | 202 +- po/hr.gmo | Bin 34075 -> 34075 bytes po/hr.po | 202 +- po/hu.gmo | Bin 112658 -> 112658 bytes po/hu.po | 202 +- po/id.gmo | Bin 110282 -> 110282 bytes po/id.po | 202 +- po/it.gmo | Bin 124167 -> 124167 bytes po/it.po | 202 +- po/ja.gmo | Bin 135623 -> 135623 bytes po/ja.po | 202 +- po/lt.gmo | Bin 29354 -> 29354 bytes po/lt.po | 202 +- po/nl.gmo | Bin 165324 -> 165324 bytes po/nl.po | 202 +- po/pl.gmo | Bin 168196 -> 168196 bytes po/pl.po | 202 +- po/pt_BR.gmo | Bin 9580 -> 9580 bytes po/pt_BR.po | 202 +- po/ro.gmo | Bin 9358 -> 9358 bytes po/ro.po | 202 +- po/ru.gmo | Bin 9155 -> 9155 bytes po/ru.po | 202 +- po/sk.gmo | Bin 122728 -> 122728 bytes po/sk.po | 202 +- po/sl.gmo | Bin 118855 -> 118855 bytes po/sl.po | 202 +- po/sv.gmo | Bin 160743 -> 160743 bytes po/sv.po | 202 +- po/tr.gmo | Bin 90159 -> 90159 bytes po/tr.po | 202 +- po/uk.gmo | Bin 215538 -> 215538 bytes po/uk.po | 202 +- po/vi.gmo | Bin 173049 -> 173049 bytes po/vi.po | 202 +- po/zh_CN.gmo | Bin 103613 -> 103613 bytes po/zh_CN.po | 202 +- po/zh_TW.gmo | Bin 5876 -> 5876 bytes po/zh_TW.po | 202 +- subst.c | 32 +- subst.c~ | 9686 ++++++++++++++++++++ subst.h | 2 + subst.h~ | 316 + tests/RUN-ONE-TEST | 2 +- tests/RUN-ONE-TEST~ | 9 + tests/nameref.right | 6 +- trap.c | 62 +- trap.c~ | 1260 +++ variables.c | 37 + variables.h | 1 + 141 files changed, 44878 insertions(+), 18453 deletions(-) create mode 100644 CWRU/CWRU.chlog~ create mode 100644 subst.c~ create mode 100644 subst.h~ create mode 100755 tests/RUN-ONE-TEST~ create mode 100644 trap.c~ diff --git a/CHANGES b/CHANGES index 96af94a9f..f36512c74 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,60 @@ previous version, bash-4.3-beta2. 1. Changes to Bash +a. Fixed a bug that left variables set by printf -v marked as invisible. + +b. Fixed an off-by-one error in a job control warning message. + +c. Fixed a bug that caused the shell to crash after declaring a nameref variable + without a value. + +d. Fixed a bug that caused asynchronous commands to not set $? correctly. + +e. Fixed a bug that caused out-of-order execution when executing aliases with + embedded newlines containing `.' commands. + +f. Fixed a bug that caused error messages generated by expansion errors in + `for' commands to have the wrong line number. + +g. Fixed a bug that caused the `wait' builtin to not be interruptible in an + interactive shell with job control enabled. + +h. Fixed a bug that caused SIGINT and SIGQUIT to not be trappable in + asynchronous subshell commands. + +i. Bash now requires that the value assigned to a nameref variable be a valid + shell identifier (variable name or array reference). + +j. Converting an existing variable to a nameref variable now turns off the + -i/-l/-u/-c attributes. + +k. Displaying a nameref variable with `declare -p' now displays the nameref + variable and its value rather than following the nameref chain. + +2. Changes to Readline + +a. Fixed a bug that could cause readline to crash and seg fault attempting to + expand an empty history entry. + +b. Fixed a bug that caused a bad entry in the $LS_COLORS variable to abort all + color processing but leave color enabled. + +c. Fixed a bug that caused display problems with multi-line prompts containing + invisible characters on multiple lines. + +d. Fixed a bug that caused effects made by undoing changes to a history line to + be discarded. + +3. New Features in Bash + +4. New Features in Readline + +------------------------------------------------------------------------------ +This document details the changes between this version, bash-4.3-rc1, and the +previous version, bash-4.3-beta2. + +1. Changes to Bash + a. Fixed a bug in bash completion that caused a tilde to be expanded even if the `direxpand' option was not enabled. diff --git a/CWRU/CWRU.chlog b/CWRU/CWRU.chlog index 45d39ce1c..51ab22f55 100644 --- a/CWRU/CWRU.chlog +++ b/CWRU/CWRU.chlog @@ -5582,3 +5582,97 @@ externs.h configure.ac - bash version moved to 4.3-rc2 + + 1/6 + --- +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - separate the description of what happens when readline reads the + tty EOF character from the description of delete-char, leaving a + note in the delete-char description about common binding for ^D. + From suggestion by Parke + +lib/readline/doc/{version.texi,history.3,*.texi} + - updated email addresses and copyright dates + + 1/7 + --- +variables.c + - delete_var: new function, just removes a variable from a hash table + and frees it, without doing anything else + - make_variable_value: if we are trying to assign to a nameref variable, + return NULL if the value is null or the empty string or not a valid + identifier + +variables.h + - delete_var: new extern declaration + +subst.h + - ASS_NAMEREF: new define for assignments, means assigning to a nameref + variable + +builtins/declare.def + - declare_internal: if we are creating and assigning to a nameref + variable, make sure the value is a valid variable name (checks done + by make_variable_value via bind_variable_value) and display an + error message, deleting the variable we just created, if it is not. + Fixes bug reported by Peggy Russell + + 1/9 + --- +builtins/declare.def + - declare_internal: turning on nameref attribute for an existing + variable turns off -i/-l/-u/-c attributes (essentially the ones + that cause evaluation at assignment time) for ksh93 compat + +builtins/setattr.def + - show_name_attributes: if asked to display attributes and values for + a nameref variable, don't follow the nameref chain to the end. More + ksh93 compat + + 1/10 + ---- +trap.c + - _run_trap_internal: use {save,restore}_parser_state instead of + {save,restore}_token_state, like in run_pending_traps(); don't + need to save and restore last_command_exit_value as a result + - _run_trap_internal: call {save,restore}_pipeline like in + run_pending_traps() + - run_pending_traps: since we no longer run traps in a signal handler + context, do not block and unblock the trapped signal while the + trap is executing + - run_pending_traps: allow recursive invocations (basically, running + traps from a trap handler) with only a warning if the shell is + compiled in debug mode. If a caller doesn't want this to happen, + it should test running_trap > 0. signal_in_progress (sig) only works + for the signals the shell handles specially + +bashline.c + - bash_event_hook: make sure we clean up readline if interrupt_state + is set, not only when SIGINT is not trapped. check_signals_and_traps + will call check_signals, which calls QUIT, which will longjmp back + to top_level, running the interrupt trap along the way. Fixes the + problem of signal handlers being reset out from under readline, and + not being set properly the next time readline is called, because + signals_set_flag is still set to 1. XXX - might need to do this + for other signals too? + + 1/11 + ---- +subst.h + - SD_GLOB: new define for skip_to_delim; means we are scanning a + glob pattern. + +subst.c + - skip_to_delim: if flags include SD_GLOB, assume we are scanning a + glob pattern. Currently only used to skip bracket expressions + which may contain one of the delimiters + + 1/12 + ---- +subst.c + - parameter_brace_expand: when expanding $@ as part of substring + expansion, pattern substitution, or case modification, don't turn + on the QUOTED_NULL flag. The code that constructs the word to be + returned from expand_word_internal expects a different code path + when $@ is being expanded. Fixes bug reported by Theodoros + V. Kalamatianos diff --git a/CWRU/CWRU.chlog~ b/CWRU/CWRU.chlog~ new file mode 100644 index 000000000..398b86d4a --- /dev/null +++ b/CWRU/CWRU.chlog~ @@ -0,0 +1,5677 @@ + 2/14/2011 + --------- +[bash-4.2 released] + + 2/15 + ---- +lib/glob/gmisc.c + - fix wmatchlen and umatchlen to avoid going past the end of the + string on an incomplete bracket expression that ends with a + NUL. Partial fix for bug reported by Clark Wang + + 2/16 + ---- +subst.h + - new string extract flag value: SX_WORD. Used when calling + extract_dollar_brace_string to skip over the word in + ${param op word} from parameter_brace_expand + +subst.c + - change parameter_brace_expand to add SX_WORD to flags passed to + extract_dollar_brace_string + - change parameter_brace_expand to use SX_POSIXEXP for all non-posix + word expansion operators that treat single quotes as special, not + just % and # + - change extract_dollar_brace_string to initialize dolbrace_state to + DOLBRACE_WORD if SX_WORD flag supplied and we shouldn't use + DOLBRACE_QUOTE. Fixes bug reported by Juergen Daubert + +doc/{bash.1,bashref.texi} + - document the exact expansions here strings undergo + + 2/17 + ---- +lib/readline/vi_mode.c + - make sure that `dd', `cc', and `yy' call vidomove_dispatch from + rl_domove_read_callback. Fixes bug reported by Clark Wang + + +lib/readline/callback.c + - make sure _rl_internal_char_cleanup is called after the + vi-motion callbacks (rl_vi_domove_callback) in rl_callback_read_char. + Companion to above fix + +doc/{bash.1,bashref.texi} + - make sure that the text describing the rhs of the == and =~ + operators to [[ states that only the quoted portion of the pattern + is matched as a string + + 2/18 + ---- +lib/glob/gmisc.c + - better fix for umatchlen/wmatchlen: keep track of the number of + characters in a bracket expression as the value to increase + matchlen by if the bracket expression is not well-formed. Fixes + bug reported by Clark Wang + +subst.c + - change expand_string_for_rhs so that it sets the W_NOSPLIT2 flag + in the word flags. We will not perform word splitting or quote + removal on the result, so we do not want to add quoted nulls if + we see "" or ''. Fixes bug reported by Mike Frysinger + + + 2/19 + ---- +variables.c + - new function, int chkexport(name), checks whether variable NAME is + exported and remakes the export environment if necessary. Returns + 1 if NAME is exported and 0 if not + - call chkexport(name) to get tzset to look at the right variable in + the environment when modifying TZ in sv_tz. Don't call tzset if + chkexport doesn't indicate that the variable is exported + +variables.h + - new extern declaration for chkexport + + +{parse.y,builtins/printf.def} + - call sv_tz before calling localtime() when formatting time strings + in prompt strings or using printf. Fixes bug reported by + Dennis Williamson + +execute_cmd.c + - modify fix of 2/9 to add casts when those variables are passed to + functions; some compilers throw errors instead of warnings. Report + and fix from Joachim Schmitz + +support/shobj-conf + - add a stanza for nsk on the Tandem from Joachim Schmitz + + +{shell,lib/readline/shell}.c + - Tandem systems should use getpwnam (getlogin()); for some reason + they don't do well with using getuid(). Fix from Joachim Schmitz + + + 3/1 + --- +variables.c + - make sure that the return value from find_variable is non-null + before trying to use it in chkexport. Fixes bug reported by + Evangelos Foutras + + 3/3 + --- +parse.y + - when adding $$ to the current token buffer in read_token_word(), + don't xmalloc a buffer for two characters and then strcpy it, just + copy the characters directly into the token buffer. Fix from + Michael Whitten + +execute_cmd.c + - fix expand_word_unsplit to add the W_NOSPLIT2 flag to the word to + be expanded, so "" doesn't add CTLNUL. Similar to fix of 2/18 to + expand_string_for_rhs. Fixes bug reported by Nathanael D. Noblet + and Matthias Klose + +parse.y + - fix extended_glob case of read_token_word to allocate an extra + space in the buffer for the next character read after the extended + glob specification if it's a CTLESC or CTLNUL. Report and fix from + Michael Witten + - fix shell expansions case of read_token_word to allocate an extra + space in the buffer for the next character read after the shell + expansion if it's a CTLESC or CTLNUL. Report and fix from + Michael Witten + - TENTATIVE: fix read_token_word to reduce the amount of buffer space + required to hold the translated and double-quoted value of $"..." + strings. Report and fix from Michael Witten + - change code around got_character and got_escaped_character labels to + make sure that we call RESIZE_MALLOCED_BUFFER before adding the + CTLESC before a CTLESC or CTLNUL, and before adding the character if + we're not adding a CTLESC. Report and fix from + Michael Witten + +subst.c + - new param flags value, PF_ASSIGNRHS, mirrors W_ASSIGNRHS, noting that + parameter expansion is on rhs of assignment statement. That inhibits + word splitting + - change param_expand to call string_list_dollar_at with quoted == 1 + if PF_ASSIGNRHS is set, so it will quote IFS characters in the + positional parameter before separating them with the first char of + $IFS. This keeps the rhs from being split inappropriately. Fixes + bug reported by Andres Perera + + 3/4 + --- +lib/readline/bind.c + - add a missing free of `names' in rl_function_dumper. Bug report + and fix from Michael Snyder + + 3/5 + --- +lib/readline/rltty.c + - change rl_deprep_terminal so it uses fileno (stdin) for the tty fd + if rl_instream is not set, like rl_prep_terminal + + 3/6 + --- +lib/readline/display.c + - fix rl_message to use a dynamically-allocated buffer instead of a + fixed-size buffer of 128 chars for the `local message prompt'. Bug + report and fix from Micah Cowan + + 3/7 + --- +jobs.c + - add sentinel to wait_sigint_handler so it only sets wait_sigint_received + if waiting_for_child is non-zero; otherwise, it restores the old + SIGINT handler and sends itself the SIGINT + - set waiting_for_child around the calls to waitchld that use it to + synchronously wait for a process + - change logic that decides whether or not the child process blocked + or handled SIGINT based on whether or not waitpid returns -1/EINTR + and the shell receives a SIGINT and the child does not exit. If + the child later exits due to SIGINT, cancel the assumoption that it + was handled + - instead of testing whether or not the child exited due to SIGINT + when deciding whether the shell should act on a SIGINT it received + while waiting, test whether or not we think the child caught + SIGINT. If it did, we let it go (unless the shell has it trapped); + if it did not catch it, the shell acts on the SIGINT. Fix from + Linus Torvalds , bug report originally + from Oleg Nesterov + + 3/8 + --- +shell.c + - initialize no_line_editing to 1 if READLINE is not defined -- we + can't have line editing without readline + + 3/12 + ---- +lib/readline/signals.c + - add SIGHUP to the set of signals readline handles + +lib/readline/doc/rltech.texi + - document that SIGHUP is now part of the set of signals readline + handles + +lib/readline/input.c + - if _rl_caught_signal indicates that read() was interrupted by a + SIGHUP or SIGTERM, return READERR or EOF as appropriate + - call rl_event_hook, if it's set, if call to read in rl_getc + returns -1/EINTR. If rl_event_hook doesn't do anything, this + continues the loop as before. This handles the other fatal + signals + +execute_cmd.c + - add a couple of QUIT; calls to execute_disk_command and + execute_simple_command to improve responsiveness to interrupts + and fatal signals + +input.c + - rearrange getc_with_restart so that the return values from read() + are handled right + +parse.y + - don't need to set terminate_immediately in yy_stream_get, since + getc_with_restart checks for terminating signals itself + - since readline returns READERR on SIGHUP or SIGTERM, don't need + to set terminate_immediately. Still doesn't handle other + signals well -- will have to check that some more + +bashline.c + - new function, bash_event_hook, for rl_event_hook. Just checks for + terminating signals and acts on them using CHECK_TERMSIG. + - set rl_event_hook to bash_event_hook + +builtins/read.def + - take out setting terminate_immediately; add calls to CHECK_TERMSIG + after read calls + +doc/{bash.1,bashref.texi} + - move the text describing the effect of negative subscripts used to + reference indexed array elements to the paragraphs describing + ${parameter[subscript]}, since that's where they are implemented. + Pointed out by Christopher F. A. Johnson + +arrayfunc.[ch],subst.c + - array_expand_index now takes a new first argument: a SHELL_VAR * + of the array variable being subscripted. Can be used later to fully + implement negative subscripts + + 3/14 + ---- +lib/glob/glob.c + - fix mbskipname to not turn the directory entry name into a wide char + string if the conversion of the pattern to a wide char string fails + - fix mbskipname to call skipname if either the pattern or the filename + can't be converted into a wide-char string + +lib/glob/xmbsrtowcs.c + - fix xdupmbstowcs2 to handle return value of 0 from mbsnrtowcs and + short-circuit with failure in that case. Fixes bug reported by + Roman Rakus + + 3/15 + ---- +bashline.c + - new variable, bash_filename_quote_characters to store the value + assigned to rl_filename_quote_characters so it can be restored + if changed. + - change bashline_reset and attempt_shell_completion to restore + rl_filename_quote_characters if not set to default + + 3/22 + ---- +lib/glob/glob.c + - wdequote_pathname falls back to udequote_pathname if xdupmbstowcs + fails to convert the pathname to a wide-character string + +lib/glob/xmbsrtowcs.c + - xdupmbstowcs2: change to fix problem with leading '\\' (results in + nms == 0, which causes it to short-circuit with failure right + away). Fixes bug pointed out by Werner Fink + - xdupmbstowcs2: compensate for mbsnrtowcs returning 0 by taking the + next single-byte character and going on + - xdupmbstowcs2: change memory allocation to increase by WSBUF_INC + bytes; try to avoid calls to realloc (even if they don't actually + result in more memory being allocated) + + 3/24 + ---- +doc/{bash.1,bashref.texi} + - slightly modify BASH_SUBSHELL description based on complaint from + Sam Liddicott + + 3/25 + ---- +trap.c + - change free_trap_strings to not call free_trap_string for signals + that are being ignored, like reset_or_restore_signal_handlers. + Fixes bug reported by Satoshi Takahashi + + 3/26 + ---- +lib/readline/rltypedefs.h + - remove old Function/VFunction/CPFunction/CPPFunction typedefs as + suggested by Tom Tromey + +lib/readline/rlstdc.h + - move defines for USE_VARARGS/PREFER_STDARG/PREFER_VARARGS from + config.h.in to here because declaration of rl_message in + readline.h uses the defines. This makes it hard for another packages + to use after the header files are installed, since config.h is not + one of the installed files. Suggested by Tom Tromey + + + 3/27 + ---- +print_cmd.c + - change indirection_string from a static buffer to a dynamic one + managed by indirection_level_string(), so we don't end up truncating + PS4. Suggested by Dennis Williamson + +lib/readline/shell.c + - change sh_set_lines_and_columns to use static buffers instead of + allocating the buffers to pass to setenv/putenv + +lib/readline/terminal.c + - change _rl_get_screen_size to not call sh_set_lines_and_columns if + ignore_env == 0 + - _rl_sigwinch_resize_terminal: new function to just retrieve terminal + size, ignoring environment + +lib/readline/rlprivate.h + - new external declaration for _rl_sigwinch_resize_terminal() (currently + unused) + +lib/readline/signals.c + - rl_sigwinch_handler: set _rl_caught_signal to SIGWINCH + - rl_sigwinch_handler: don't immediately call rl_resize_terminal; just + leave _rl_caught_signal set for RL_CHECK_SIGNALS to handle + - _rl_signal_handler: call rl_resize_terminal if sig == SIGWINCH. + Should fix hang when sending multiple repeated SIGWINCH reported by + Henning Bekel + + 3/29 + ---- +lib/sh/snprintf.c + - include math.h for any defines for isinf/isnan + - use code from gnulib documentation to implement isinf/isnan if they + are not defined + +configure.in + - don't check for isinf or isnan; c99 says they're macros anyway + +config.h.in + - remove defines for ISINF_IN_LIBC and ISNAN_IN_LIBC, no longer used + by snprintf.c + + 4/2 + --- +braces.c + - brace_gobbler: fix to understand double-quoted command substitution, + since the shell understands unquoted comsubs. Fixes bug reported + by Michael Whitten + +lib/readline/display.c + - include on MDOS + - get and set screen size using DJGPP-specific calls on MSDOS + - move cursor up clear screen using DJGPP-specific calls + - don't call tputs on DJGPP; there is no good terminfo support + +lib/readline/terminal.c + - include on MDOS + - get and set screen size using DJGPP-specific calls on MSDOS + - use DJGPP-specific initialization on MSDOS, zeroing all the + _rl_term_* variables + - don't call tputs on DJGPP; there is no good terminfo support + DJGPP support from Eli Zaretskii + + 4/6 + --- + +config-top.h + - change DEFAULT_PATH_VALUE to something more useful and modern + + 4/8 + --- +tests/printf2.sub + - make sure LC_ALL and LC_CTYPE are set so LANG assignment takes effect. + Reported by Cedric Arbogast + + 4/11 + ---- +include/chartypes.h + - fix a couple of dicey defines (though ones that don't cause any + compiler warnings) in IN_CTYPE_DOMAIN + +doc/{bashref.texi,bash.1} + - add note referring to duplicating file descriptors in sections + describing redirecting stdout and stderr and appending to stdout + and stderr. Suggested by Matthew Dinger + +pcomplete.c + - it_init_helptopics: new function to support completing on help topics, + not just builtins + - it_helptopics: new programmable completion list of help topics + - build list of helptopic completions in gen_action_completions on + demand + +pcomplete.h + - new extern declaration for it_helptopics + +builtins/complete.def + - the `helptopic' action now maps to CA_HELPTOPIC intead of CA_BUILTIN, + since there are more help topics than just builtins. Suggested by + Clark Wang + + 4/12 + ---- +print_cmd.c + - fix print_arith_for_command to add a call to PRINT_DEFERRED_HEREDOCS + before ending the body of the command, so heredocs get attached to + the right command instead of to the loop. From gentoo bug 363371 + http://bugs.gentoo.org/show_bug.cgi?id=363371 + +execute_cmd.c + - change coproc_pidchk to unset the appropriate shell variables when + the (currently single) known coproc pid terminates + - cleanup and new functions to fully support multiple coprocesses when + and if I decide to go there + + 4/13 + ---- +print_cmd.c + - fix print_group_command to add a call to PRINT_DEFERRED_HEREDOCS + after call to make_command_string_internal before printing closing + `}' + - fix make_command_string_internal to add a call to + PRINT_DEFERRED_HEREDOCS after recursive call to + make_command_string_internal in case cm_subshell before printing + closing `)' + + 4/14 + ---- +print_cmd.c + - change overlapping strcpy in named_function_string to memmove + +sig.h + - UNBLOCK_SIGNAL: convenience define, same as UNBLOCK_CHILD, just + restores an old signal mask + +trap.c + - set_signal: instead of setting the signal handler to SIG_IGN while + installing the new trap handler, block the signal and unblock it + after the new handler is installed. Fixes bug reported by Roman + Rakus + + 4/15 + ---- +doc/{bash.1,bashref.texi} + - make it clear that enabling monitor mode means that all jobs run in + separate process groups + + 4/18 + ---- +builtins/fc.def + - update fix of 4/15/2010 to not take saved_command_line_count into + account when stepping down the history list to make sure that + last_hist indexes something that is valid. Fixes bug reported by + + + 4/19 + ---- +builtins/fc.def + - fc_gethnum: make sure the calculation to decide the last history + entry is exactly the same as fc_builtin. Fixes bug uncovered by + fix of 4/18 to stop seg fault + + 4/22 + ---- +lib/readline/terminal.c + - change _rl_enable_meta_key to set a flag indicating that it sent the + enable-meta sequence + - _rl_disable_meta_key: new function to turn off meta mode after we + turned it on with _rl_enable_meta_key + +lib/readline/rlprivate.h + - extern declaration for _rl_disable_meta_key + +configure.in + - if not cross-compiling, set CFLAGS_FOR_BUILD from any CFLAGS inherited + from the environment. Fixes HP/UX build problem reported by + "Daniel Richard G." + + 4/26 + ---- +config-top.h + - define MULTIPLE_COPROCS to 0 so the code is still disabled but easy + to enable via configure option or editing this file + + 4/29 + ---- +lib/sh/eaccess.c + - freebsd provides faccessat, with the same misfeature as their eaccess + and access implementations (X_OK returns true for uid==0 regardless + of the actual file permissions), so reorganize code to check the + file permissions as with eaccess. Report and fix from Johan Hattne + + + 5/2 + --- +doc/{bash.1,bashref.texi} + - add forward reference to `Pattern Matching' from `Pathname + Expansion', suggested by Greg Wooledge + + 5/5 + --- +pcomplib.c + - the bash_completion project now distributes over 200 completions + for various programs, with no end in sight, so increase the value + of COMPLETE_HASH_BUCKETS from 32 to 128 + +pathexp.c + - quote_string_for_globbing: make sure CTLESC quoting CTLESC is + translated into \ even if the flags include QGLOB_REGEXP. + We don't want to process the second CTLESC as a quote character. + Fixes bug reported by Shawn Bohrer + + 5/6 + --- +builtins/printf.def + - change PRETURN to not call fflush if ferror(stdout) is true + - if a call to one of the stdio functions or printstr leaves + ferror(stdout) true, and PRETURN is going to be called, let PRETURN + print the error message rather than doubling up the messages. Fixes + problem reported by Roman Rakus + + 5/9 + --- +doc/{bash.1,bashref.texi} + - add note to the effect that lists inside compound command can be + terminated by newlines as well as semicolons. Suggested by + Roman Byshko + + 5/10 + ---- +subst.c + - remove_quoted_nulls: fix problem that caused it to skip over the + character after a CTLNUL, which had the effect of skipping every + other of a series of CTLNULs. Fixes bug reported by + Marten Wikstrom + + 5/11 + ---- +subst.c + - extract_process_subst: add SX_COMMAND flag to call to + extract_delimited_string, since we're expanding the same sort of + command as command substitution. Fixes bug reported in Ubuntu + bug 779848 + + 5/12 + ---- +configure.in + - set the prefer_shared and prefer_static variables appropriately + depending on the value of $opt_static_link + +aclocal.m4 + - AC_LIB_LINKFLAGS_BODY: change to not prefer shared versions of the + libraries it's searching for if the prefer_shared variable is "no". + Fixes problem reported by Cedric Arbogast + + 5/13 + ---- +lib/readline/readline.c + - _rl_internal_teardown: add call to _rl_disable_meta_key to make the + meta key active only for the duration of the call to readline() + - _rl_internal_setup: move call to _rl_enable_meta_key here from + readline_initialize_everything so the meta key is active only for + the duration of the call to readline(). Suggestion from Miroslav + Lichvar + +builtins/help.def + - help_builtin: change strncmp to strcmp so that `help read' no longer + matches `readonly'. Suggested by Clark Wang + +config.h.in + - add define for GLIBC21, checked using jm_GLIBC21 as part of the tests + for libintl + +lib/malloc/malloc.c + - internal_free: don't use the cached value of memtop when deciding + whether or not to adjust the break and give memory back to the kernel + when using the GNU C library, since glibc uses sbrk for its own + internal purposes. From Debian bug 614815, reported by Samuel + Thibault + +aclocal.m4 + - BASH_STRUCT_WEXITSTATUS_OFFSET: change AC_RUN_IFELSE to AC_TRY_RUN + to avoid warning about not using AC_LANG_SOURCE + + 5/14 + ---- +bashline.[ch] + - two new functions, bashline_set_event_hook and bashline_reset_event_hook, + to set rl_event_hook to bash_event_hook and back to NULL, respectively + - don't set rl_event_hook unconditionally + +sig.c + - termsig_sighandler: if the shell is currently interactive and + readline is active, call bashline_set_event_hook to cause + termsig_handler to be called via bash_event_hook when the shell + returns from the signal handler + + 5/15 + ---- +lib/readline/display.c + - _rl_col_width: Mac OS X has a bug in wcwidth: it does not return 0 + for UTF-8 combining characters. Added workaround dependent on + MACOSX. Fixes problem pointed out by Thomas De Contes + + + 5/16 + ---- +lib/readline/rlmbutil.h + - WCWIDTH: wrapper for wcwidth that returns 0 for Unicode combining + characters on systems where wcwidth is broken (e.g., Mac OS X). + +lib/readline/{complete,display,mbutil}.c + - use WCWIDTH instead of wcwidth + + 5/17 + ---- +lib/readline/display.c + - update_line: after computing ofd and nfd, see whether the next + character in ofd is a zero-width combining character. If it is, + back ofd and nfd up one, so the base characters no longer compare + as equivalent. Fixes problem reported by Keith Winstein + + +lib/readline/nls.c + - _rl_utf8locale: new flag variable, set to non-zero if the current + locale is UTF-8 + - utf8locale(): new function, returns 1 if the passed lspec (or the + current locale) indicates that the locale is UTF-8. Called from + _rl_init_eightbit + +lib/readline/rlprivate.h + - extern declaration for _rl_utf8locale + +locale.c + - locale_utf8locale: new flag variable, set to non-zero if the current + locale is UTF-8 (currently unused) + - locale_isutf8(): new function, returns 1 if the passed lspec (or the + current locale) indicates that the locale is UTF-8. Should be called + whenever the locale or LC_CTYPE value is modified + +aclocal.m4 + - BASH_WCWIDTH_BROKEN: new test for whether or not wcwidth returns + zero-width characters like unicode combining characters as having + display length 1; define WCWIDTH_BROKEN in this case + +config.h.in + - WCWIDTH_BROKEN: new define + +lib/readline/rlmbutil.h + - change WCWIDTH macro to use _rl_utf8locale and the full range of + Unicode combining characters (U+0300-U+036F) + + 5/19 + ---- +lib/readline/rlprivate.h + - _rl_search_context: new member, prevc, will hold character read + prior to lastc + +lib/readline/isearch.c + - _rl_isearch_dispatch: if the character causes us to index into + another keymap, save that character in cxt->prevc + - _rl_isearch_dispatch: if we index into another keymap, but don't + find a function that's special to i-search, and the character that + caused us to index into that keymap would have terminated the + search, push back cxt->prevc and cxt->lastc to make it appear as + if `prevc' terminated the search, and execute lastc as a command. + We have to push prevc back so we index into the same keymap before + we read lastc. Fixes bug report from Davor Cubranic + + + 5/20 + ---- +expr.c + - expr_bind_variable: pay attention to the return value from + bind_variable and check whether or not we should error out due to + a readonly or noassign variable. Fixes bug reported by Eric + Blake + + 5/26 + ---- + +lib/readline/search.c + - include histlib.h for ANCHORED_SEARCH defines + - rl_history_search_flags: new variable, holds ANCHORED_SEARCH flag for + the duration of a history search + - rl_history_search_reinit: takes a new flags variable, defines whether + or not the search is anchored; assigned to rl_history_search_flags + - rl_history_serarch_reinit: if ANCHORED_SEARCH flag passed, add ^ to + beginning of search string; otherwise search string is unmodified + - rl_history_search_internal: set rl_point appropriately based on + whether or not rl_history_search_flags includes ANCHORED_SEARCH + - rl_history_substr_search_forward: new function, for non-anchored + substring search forward through history for string of characters + preceding rl_point + - rl_history_substr_search_backward: new function, for non-anchored + substring search backward through history for string of characters + preceding rl_point. Original code from Niraj Kulkarni + + +lib/readline/readline.h + - extern declarations for rl_history_substr_search_{for,back}ward + +lib/readline/funmap.c + - history-substring-search-forward: new bindable command, invokes + rl_history_substr_search_forward + - history-substring-search-backward: new bindable command, invokes + rl_history_substr_search_backward + +lib/readline/doc/{rluser.texi,readline.3} + - document history-substring-search-forward and + history-substring-search-backward + + 5/27 + ---- +{nojobs,jobs}.c + - add support for DONT_REPORT_SIGTERM so that the shell doesn't print + a message when a job exits due to SIGTERM since that's the default + signal sent by the kill builtin. Suggested by Marc Herbert + + +config-top.h + - DONT_REPORT_SIGTERM: new user-modifiable setting. Commented out + by default + + 5/28 + ---- +lib/readline/bind.c + - _rl_skip_to_delim: skip to a closing double quote or other delimiter, + allowing backslash to quote any character, including the delimiter + - rl_parse_and_bind: call _rl_skip_to_delim instead of using inline + code + - rl_parse_and_bind: allow quoted strings as the values of string + variables. Variable values without double quotes have trailing + whitespace removed (which still allows embedded whitespace, for + better or worse). Fixes problem with string variables not matching + in `set' command if values happen to have trailing spaces or tabs + (debian bash bug #602762), but introduces slight incompatibility. + + 5/29 + ---- +doc/{bash.1,bashref.texi} + - clarify unset description to specify that without options, a + variable, then a shell function if there is no variable by that + name, is unset. Fixes discrepancy reported by Mu Qiao + + + 6/4 + ---- +doc/{bash.1,bashref.texi} + - clarify description of LINES and COLUMNS (and checkwinsize shopt + option) to make it clear that only interactive shells set a + handler for SIGWINCH and update LINES and COLUMNS. Original + report submitted by Jonathan Nieder + +arrayfunc.c + - expand_compound_array_assignment: defer expansion of words between + parens when performing compound assignmnt to an associative array + variable + - assign_compound_array_list: perform the same expansions when doing + a compound array assignment to an associative array variable as + when doing a straight array index assignment. The idea is that + foo=( [ind1]=bar [ind2]=quux) + is the same as + foo[ind1]=bar ; foo[ind2]=quux + + This fixes problems with double-expansion and quote removal being + performed on the array indices + + 6/13 + ---- +doc/{bash.1,bashref.texi} + - Add a little text to make it clear that the locale determines how + range expressions in glob patterns are handled. + + + 6/21 + ---- +builtins/read.def + - display a message and return error status if -a is used with an + existing associative array. Fixes bug reported by Curtis Doty + + + 6/24 + ---- +{jobs,nojobs}.c + - non-interactive shells now react to the setting of checkwinsize + and set LINES and COLUMNS after a foreground job exits. From a + suggestion by Leslie Rhorer + +doc/{bash.1,bashref.texi} + - checkwinsize: remove language saying that only interactive shells + check the window size after each command + +lib/readline/histfile.c + - history_backupfile: new file, creates a backup history file name + given a filename (appending `-') + - history_do_write: when overwriting the history file, back it up + before writing. Restore backup file on a write error. Suggested + by chkno@chkno.net + +bashline.c + - find_cmd_name: two new arguments, return the start and end of the + actual text string used to find the command name, without taking + whitespace into account + - attempt_shell_completion: small changes to make sure that completion + attempted at the beginning of a non-empty line does not find a + programmable completion, even if the command name starts at point + - attempt_shell_completion: small change to make sure that completion + does not find a progcomp when in whitespace before the command + name + - attempt_shell_completion: small change to make sure that completion + does not find a progcomp when point is at the first character of a + command name, even when there is leading whitespace (similar to + above). Fixes problems noted by Ville Skytta + +subst.c + - brace_expand_word_list: since the individual strings in the strvec + returned by brace_expand are already allocated, don't copy them to + newly-allocated memory when building the WORD_LIST, just use them + intact + +locale.c + - locale_mb_cur_max: cache value of MB_CUR_MAX when we set or change + the locale to avoid a function call every time we need to read it + +shell.h + - new struct to save shell_input_line and associated variables: + shell_input_line_state_t + - add members of sh_parser_state_t to save and restore token and the + size of the token buffer + +parse.y + - {save,restore}_input_line_state: new functions to save and restore + shell_input_line and associated variables + - {save,restore}_parser_state: add code to save and restore the token + and token buffer size + - xparse_dolparen: call save_ and restore_input_line_state to avoid + problems with overwriting shell_input_line when we recursively + call the parser to parse a command substitution. Fixes bug + reported by Rui Santos + +include/shmbutil.h + - use locale_mb_cur_max instead of MB_CUR_MAX in ADVANCE_CHAR and + similar macros + +lib/glob/smatch.c + - rangecmp,rangecmp_wc: change to take an additional argument, which + forces the use of strcoll/wscoll when non-zero. If it's 0, a new + variable `glob_asciirange' controls whether or not we use strcoll/ + wscoll. If glob_asciirange is non-zero, we use straight + C-locale-like ordering. Suggested by Aharon Robbins + + + 6/30 + ---- +execute_cmd.c + - execute_pipeline: make sure the lastpipe code is protected by + #ifdef JOB_CONTROL. Fixes problem reported by Thomas Cort + + + 7/2 + --- +lib/readline/complete.c + - EXPERIMENTAL: remove setting of _rl_interrupt_immediately around + completion functions that touch the file system. Idea from Jan + Kratochvil and the GDB development + team + +lib/readline/signals.c + - rl_signal_handler: if we're in callback mode, don't interrupt + immediately on a SIGWINCH + + 7/3 + --- +bashline.c + - set_directory_hook: and its siblings are a new set of functions to + set, save, and restore the appropriate directory completion hook + - change callers to use {set,save,restore}_directory_hook instead of + manipulating rl_directory_rewrite_hook directly + - dircomplete_expand: new variable, defaults to 0, if non-zero causes + directory names to be word-expanded during word and filename + completion + - change {set,save,restore}_directory_hook to look at dircomplete_expand + and change rl_directory_completion_hook or rl_directory_rewrite_hook + appropriately + +bashline.h + - extern declaration for set_directory_hook so shopt code can use it + + 7/6 + --- +builtins/shopt.def + - globasciiranges: new settable shopt option, makes glob ranges act + as if in the C locale (so b no longer comes between A and B). + Suggested by Aharon Robbins + + 7/7 + --- +doc/{bash.1,bashref.texi} + - document new `globasciiranges' shopt option + + 7/8 + --- +builtins/shopt.def + - direxpand: new settable option, makes filename completion expand + variables in directory names like bash-4.1 did. + - shopt_set_complete_direxpand: new function, does the work for the + above by calling set_directory_hook + +doc/{bash.1,bashref.texi} + - document new `direxpand' shopt option + + 7/15 + ---- +lib/readline/isearch.c + - _rl_isearch_dispatch: when adding character to search string, use + cxt->lastc (which we use in the switch statement) instead of c, + since lastc can be modified earlier in the function + + 7/18 + ---- +lib/readline/rlprivate.h + - _rl_search_context: add another member to save previous value of + (multibyte) lastc: pmb is to mb as prevc is to lastc + +lib/readline/isearch.c: + - _rl_isearch_dispatch: if a key sequence indexes into a new keymap, + but doesn't find any bound function (k[ind].function == 0) or is + bound to self-insert (k[ind].function == rl_insert), back up and + insert the previous character (the one that caused the index into a + new keymap) and arrange things so the current character is the next + one read, so both of them end up in the search string. Fixes bug + reported by Clark Wang + - _rl_isearch_dispatch: a couple of efficiency improvements when adding + characters to the isearch string + + 7/24 + ---- +lib/readline/isearch.c + - _rl_isearch_dispatch: save and restore cxt->mb and cxt->pmb + appropriately when in a multibyte locale + +doc/{bash.1,bashref.texi} + - correct description of {x}>file (and other redirection operators + that allocate a file descriptor) to note the the fd range is + greater than or equal to 10. Fixes problem reported by + Christian Ullrich + +lib/readline/signals.c + - rl_signal_handler: don't interrupt immediately if in callback mode + +lib/readline/callback.c + - rl_callback_read_char: install signal handlers only when readline + has control in callback mode, so readline's signal handlers aren't + called when the application is active (e.g., between the calls to + rl_callback_handler_install and rl_callback_read_char). If the + readline signal handlers only set a flag, which the application + doesn't know about, the signals will effectively be ignored until + the next time the application calls into the readline callback + interface. Fixes problem of calling unsafe functions from signal + handlers when in callback mode reported by Jan Kratochvil + + +execute_cmd.c + - fix_assignment_words: when in Posix mode, the `command' builtin + doesn't change whether or not the command name it protects is an + assignment builtin. One or more instances of `command' + preceding `export', for instance, doesn't make `export' treat its + assignment statement arguments differently. Posix interpretation + #351 + +doc/{bash.1,bashref.texi} + - document new Posix-mode behavior of `command' when preceding builtins + that take assignment statements as arguments + +builtins/printf.def + - printstr: if fieldwidth or precision are < 0 or > INT_MAX when + supplied explicitly (since we take care of the `-' separately), + clamp at INT_MAX like when using getint(). Fixes issue reported + by Ralph Coredroy + + 7/25 + ---- +lib/readline/chardefs.h + - isxdigit: don't define if compiling with c++; declared as a c++ + template function. Fixes bug reported by Miroslav Lichvar + + +builtins/printf.def + - getint: if garglist == 0, return whatever getintmax returns (0). + Fixes bug reported by Ralph Coredroy + + 7/28 + ---- +doc/{bash.1,bashref.texi} + - minor changes to the descriptions of the cd and pushd builtins + +lib/sh/zread.c + - zsyncfd: change variable holding return value from lseek to + off_t. Bug report and fix from Gregory Margo + + 8/1 + --- +expr.c + - don't check for division by 0 when in a context where no evaluation + is taking place. Fixes bug reported by dnade.ext@orange-ftgroup.com + + 8/6 + --- +execute_cmd.c + - execute_command_internal: the parent branch of the subshell code + (where the child calls execute_in_subshell) should not close all + open FIFOs with unlink_fifo_list if it's part of a shell function + that's still executing. Fixes bug reported by Maarten Billemont + + + 8/9 + --- +builtins/common.c + - get_exitstat: return EX_BADUSAGE (2) on a non-numeric argument + +builtins/return.def + - return_builtin: just call get_exitstat to get the return status, + let it handle proper parsing and handling of arguments. Fixes + issue most recently raised by Linda Walsh . + Reverses change from 9/11/2008 (see above) + + 8/16 + ---- +doc/{bash.1,bashref.texi} + - clean up `set -e' language to make it clearer that any failure of + a compound command will cause the shell to exit, not just subshells + and brace commands + + 8/17 + ---- +configure.in + - make the various XXX_FOR_BUILD variables `precious' to autoconf to + avoid stale data + - change how CC_FOR_BUILD is initialized when cross-compiling and not, + but do not change behavior + - initialize CFLAGS_FOR_BUILD to -g when cross-compiling + - initialize LIBS_FOR_BUILD to $(LIBS) when not cross-compiling, empty + when cross-compiling + - create AUTO_CFLAGS variable to hold basic CFLAGS defaults; used when + CFLAGS not inherited from environment (like effect of old + auto_cflags variable) + - substitute LIBS_FOR_BUILD into output Makefiles + [changes inspired by bug report from Nathan Phillip Brink + -- gentoo bug 378941] + +builtins/Makefile.in + - substitute LIBS_FOR_BUILD from configure, not strictly initialized + to $(LIBS) + + 8/27 + ---- +doc/{bash.1,bashref.texi} + - minor changes to the here string description to clarify the + expansions performed on the word + +support/shobj-conf + - handle compilation on Lion (Mac OS X 10.7/darwin11) with changes + to darwin stanzas. Fixes readline bug reported by Vincent + Sheffer + +lib/sh/strtrans.c + - ansic_wshouldquote: check a string with multi-byte characters for + characters that needs to be backslash-octal escaped for $'...' + - ansic_shouldquote: if is_basic fails for one character, let + ansic_wshouldquote examine the rest of the string and return what + it returns. From a patch sent by Roman Rakus + + 8/30 + ---- +lib/sh/strtrans.c + - ansic_quote: changes to quote (or not) multibyte characters. New + code converts them to wide characters and uses iswprint to check + valid wide chars. From a patch sent by Roman Rakus + + + 9/7 + --- +lib/sh/shquote.c + - sh_backslash_quote: change to be table-driven so we can use a + different table if we want to + - sh_backslash_quote: takes a second char table[256] argument; + +externs.h + - sh_backslash_quote: add second argument to function prototype + +bashline.c,braces.c,parse.y,builtins/printf.def + - change callers of sh_backslash_quote to add second argument + +bashline.c + - filename_bstab: table of characters to pass to sh_backslash_quote; + characters with value 1 will be backslash-quoted + - set_filename_bstab: turn on characters in filename backslash-quote + table according to passed string argument + - call set_filename_bstab every time rl_filename_quote_characters is + assigned a value + - bash_quote_filename: call sh_backslash_quote with filename_bstab + as second argument. This allows other characters in filenames to + be quoted without quoting, for instance, a dollar sign in a shell + variable reference + + 9/8 + --- +bashline.c + - complete_fullquote: new variable, controls table passed to + sh_backslash_quote. If non-zero (the default), the standard set + of shell metacharacters -- as in bash versions up to and including + bash-4.2 -- gets backslash-quoted by the completion code. If zero, + sh_backslash_quote gets the table with the characters in the + variable reference removed, which means they are removed from the + set of characters to be quoted in filenames + + 9/10 + ---- +bashline.c + - bash_filename_stat_hook: new function, designed to expand variable + references in filenames before readline passes them to stat(2) + to determine whether or not they are a directory + + 9/15 + ---- +builtins/declare.def + - if assign_array_element fails due to a bad (or empty) subscript, mark + it as an assignment error and don't attempt any further processing + of that declaration. Fixes segfault bug reported by Diego Augusto + Molina + + 9/19 + ---- +expr.c + - exppower: replace the simple exponentiation algorithm with an + implementation of exponentiation by squaring. Inspired by report + from Nicolas ARGYROU + +bashline.c + - bash_quote_filename: check for rtext being non-null before + dereferencing it + - set_saved_history: operate_and_get_next assumes that the previous + line was added to the history, even when the history is stifled and + at the max number of entries. If it wasn't, make sure the history + number is incremented properly. Partial fix for bug reported by + gregrwm + +doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi + - minor editorial changes inspired by suggestions from + Roger Zauner + + 9/20 + ---- +lib/intl/localealias.c + - read_alias_file: close resource leak (fp) when returning on error + + 9/22 + ---- +execute_command.c + - execute_intern_function: implement Posix interpretation 383 by making + it an error to define a function with the same name as a special + builtin when in Posix mode. + http://austingroupbugs.net/view.php?id=383#c692 + + 9/25 + ---- +doc/{bash.1,bashref.texi} + - formatting and some content changes from Benno Schulenberg + + - document new posix-mode behavior from interp 383 change of 9/22 + + 9/30 + ---- +execute_cmd.c + - shell_execve: add strerror to error message about executable file + that shell can't execute as a shell script. From suggestion by + daysleeper + + 10/1 + ---- +bashhist.c + - maybe_add_history: act as if literal_history is set when parser_state + includes PST_HEREDOC, so we save the bodies of here-documents just + as they were entered. Fixes bug reported by Jonathan Wakely + + - bash_add_history: make sure that the second and subsequent lines of + a here document don't have extra newlines or other delimiting + chars added, since they have the trailing newline preserved, when + `lithist' is set and history_delimiting_chars isn't called + +execute_cmd.c + - execute_command_internal: avoid fd exhaustion caused by using + process substitution in loops inside shell functions by using + copy_fifo_list and close_new_fifos (). Fixes debian bash bug + 642504 + +lib/readline/complete.c + - new variable, rl_filename_stat_hook, used by append_to_match. If + filename completion is desired, and rl_filename_stat_hook points + to a function, call that function to expand the filename in an + application-specific way before calling stat. + +bashline.c + - bash_default_completion: if variable completion returns a single + match, use bash_filename_stat_hook and file_isdir to determine + whether or not the variable name expands to a directory. If it + does, set the filename_append_character to `/'. This is not + perfect, so we will see how it works out. Adds functionality + requested by Peter Toft and Patrick Pfeifer + + - rl_filename_stat_hook: assigned bash_filename_stat_hook, so things + like $HOME/Downloads (after completion) have a slash appended. + In general, this causes the stat hook to be called whenever + filename completion is appended. Adds functionality requested by + Patrick Pfeifer + +lib/readline/readline.h + - new extern declaration for rl_filename_stat_hook + +lib/readline/doc/rltech.texi + - rl_directory_rewrite_hook: now documented + - rl_filename_stat_hook: document + +pcomplete.c + - gen_action_completions: in the CA_DIRECTORY case, turn off + rl_filename_completion_desired if it was off before we called + rl_filename_completion_function and we didn't get any matches. + Having it on causes readline to quote the matches as if they + were filenames. Adds functionality requested by many, + including Clark Wang + +assoc.[ch] + - assoc_replace: new function, takes the same arguments as + assoc_insert, but returns the old data instead of freeing it + - assoc_insert: if the object returned by hash_insert doesn't have + the same value for its key as the key passed as an argument, we + are overwriting an existing value. In this case, we can free the + key. Fixes bug reported by David Parks + + 10/5 + ---- +print_cmd.c + - indirection_level_string: small change to only re-enable `x' + option after calling decode_prompt_string if it was on before. In + normal mode, it will be, but John Reiser + has a novel use for that code in conjunction with a pre-loaded + shared library that traces system call usage in shell scripts + + 10/10 + ----- +Makefile.in + - Fix from Mike Frysinger to avoid trying to + build y.tab.c and y.tab.h with two separate runs of yacc if + parse.y changes. Problem with parallel makes + - Fix from Mike Frysinger to avoid subdirectory + builds each trying to make version.h (and all its dependencies) + +lib/sh/Makefile.in + - remove some dependencies on version.h where it doesn't make sense + +variables.c + - initialize_shell_variables: while reading the environment, a shell + running in posix mode now checks for SHELLOPTS being readonly (it + gets set early on in main()) before trying to assign to it. It + saves an error message and the variable gets parsed as it should. + Fixes bug reported by Len Giambrone + + 10/14 + ----- +doc/{bash.1,bashref.texi} + - add to the "duplicating file descriptors" description that >&word + doesn't redirect stdout and stderr if word expands to `-' + - add to the "appending standard output and standard error" + description a note that >&word, where word is a number or `-', + causes other redirection operators to apply for sh and Posix + compatibility reasons. Suggested by Greg Wooledge + + + 10/15 + ----- +pcomplete.c + - change pcomp_filename_completion_function to only run the filename + dequoting function in the cases (as best as it can figure) where + readline won't do it via rl_filename_completion_function. Based + on reports from + + 10/19 + ----- +bashline.c + - attempt_shell_completion: add call to set_directory_hook() to make + sure the rewrite functions are correct. It's cheap and doesn't + hurt + - command_word_completion_function: if completing a command name that + starts with `.' or `..', temporarily suppress the effects of the + `direxpand' option and restore the correct value after calling + rl_filename_completion_function. If it's enabled, the directory + name will be rewritten and no longer match `./' or `../'. Fixes + problem reported by Michael Kalisz + + 10/22 + ----- +builtins/history.def + - push_history: make sure remember_on_history is enabled before we + try to delete the last history entry -- the `history -s' command + might not have been saved. Fixes bug reported by + lester@vmw-les.eng.vmware.com + +lib/readline/complete.c + - rl_callback_read_char: add calls to a macro CALLBACK_READ_RETURN + instead of straight return; add same call at end of function. + Placeholder for future work in deinstalling signal handlers when + readline is not active + + 10/25 + ----- +expr.c + - exp2: catch arithmetic overflow when val1 == INTMAX_MIN and val2 == -1 + for DIV and MOD and avoid SIGFPE. Bug report and pointer to fix + from Jaak Ristioja + - expassign: same changes for arithmetic overflow for DIV and MOD + + 10/28 + ----- +subst.c + - parameter_brace_expand: allow pattern substitution when there is an + expansion of the form ${var/} as a no-op: replacing nothing with + nothing + - parameter_brace_patsub: don't need to check for PATSUB being NULL; + it never is + +flags.c + - if STRICT_POSIX is defined, initialize history_expansion to 0, since + history expansion (and its treatment of ! within double quotes) is + not a conforming posix environment. From austin-group issue 500 + +lib/readline/histexpand.c + - history_expand: when processing a string within double quotes + (DQUOTE == 1), make the closing double quote inhibit history + expansion, as if the word were outside double quotes. In effect, + we assume that the double quote is followed by a character in + history_no_expand_chars. tcsh and csh seem to do this. This + answers a persistent complaint about history expansion + + 10/29 + ----- +make_cmd.c + - make_arith_for_command: use skip_to_delim to find the next `;' + when breaking the string between the double parens into three + separate components instead of a simple character loop. Fixes + bug reported by Dan Douglas + + 11/2 + ---- +Makefile.in + - make libbuiltins.a depend on builtext.h to serialize its creation + and avoid conflict between multiple invocations of mkbuiltins. + Fix from Mike Frysinger + + 11/5 + ---- +findcmd.c + - user_command_matches: if stat(".", ...) returns -1, set st_dev + and st_ino fields in dotinfo to 0 to avoid same_file matches + - find_user_command_in_path: check stat(2) return the same way + +lib/glob/glob.c + - glob_vector: don't call strlen(pat) without checking pat == 0 + - glob_dir_to_array: make sure to free `result' and all allocated + members before returning error due to malloc failure + - glob_vector: make sure to free `nextname' and `npat' on errors + (mostly when setting lose = 1) + - glob_vector: if flags & GX_MATCHDIRS but not GX_ALLDIRS, make + sure we free `subdir' + - glob_filename: when expanding ** (GX_ALLDIRS), make sure we + free temp_results (return value from glob_vector) + +lib/glob/xmbsrtowcs.c + - xdupmbstowcs: fix call to realloc to use sizeof (char *) instead + of sizeof (char **) when assigning idxtmp + +execute_cmd.c + - print_index_and_element: return 0 right away if L == 0 + - is_dirname: fix memory leak by freeing `temp' + - time_command: don't try to deref NULL `command' when assigning + to `posix_time' + - shell_execve: null-terminate `sample' after READ_SAMPLE_BUF so it's + terminated for functions that expect that + +builtins/read.def + - read_builtin: don't call bind_read_variable with a potentially-null + string + +pcomplete.c + - gen_command_matches: don't call dispose_word_desc with a NULL arg + - gen_compspec_completions: fix memory leak by freeing `ret' before + calling gen_action_completions (tcs, ...). happens when + performing directory completion as default and no completions + have been generated + - gen_progcomp_completions: make sure to set foundp to 0 whenever + returning NULL + - it_init_aliases: fix memory leak by freeing alias_list before + returning + +bashline.c + - command_word_completion_function: don't call restore_tilde with a + NULL directory_part argument + - bash_directory_expansion: bugfix: don't throw away results of + rl_directory_rewrite_hook if it's set and returns non-zero + - bind_keyseq_to_unix_command: free `kseq' before returning error + +arrayfunc.c + - assign_array_element_internal: make sure `akey' is freed if non-null + before returning error + - assign_compound_array_list: free `akey' before returning error + - array_value_internal: free `akey' before returning error + - unbind_array_element: free `akey' before returning error + +subst.c + - array_length_reference: free `akey' before returning error in case + of expand_assignment_string_to_string error + - array_length_reference: free `akey' after call to assoc_reference + - skip_to_delim: if skipping process and command substitution, free + return value from extract_process_subst + - parameter_brace_substring: free `val' (vtype == VT_VARIABLE) before + returning if verify_substring_values fails + - parameter_brace_expand: remove two duplicate lines that allocate + ret in parameter_brace_substring case + - parameter_brace_expand: convert `free (name); name = xmalloc (...)' + to use `xrealloc (name, ...)' + - parameter_brace_expand: free `name' before returning when handling + ${!PREFIX*} expansion + - split_at_delims: fix memory leak by freeing `d2' before returning + +redir.c + - redirection_error: free `filename' if the redirection operator is + REDIR_VARASSIGN by assigning allocname + +eval.c + - send_pwd_to_eterm: fix memory leak by freeing value returned by + get_working_directory() + +builtins/cd.def + - change_to_directory: fix memory leak by freeing return value from + resetpwd() + - cd_builtin: fix memory leak by freeing value returned by dirspell() + - cd_builtin: fix memory leak by freeing `directory' if appropriate + before overwriting with return value from resetpwd() + +builtins/type.def + - describe_command: free `full_path' before overwriting it with return + value from sh_makepath + +builtins/complete.def + - compgen_builtin: fix memory leak by calling strlist_dispose (sl) + before overwriting sl with return value from completions_to_stringlist + +builtins/hash.def + - list_hashed_filename_targets: fix memory leak by freeing `target' + +make_cmd.c + - make_arith_for_command: free `init', `test', and `step' before + returning error on parse error + +jobs.c + - initialize_job_control: don't call move_to_high_fd if shell_tty == -1 + +general.c + - check_dev_tty: don't call close with an fd < 0 + - legal_number: deal with NULL `string' argument, return invalid + +lib/sh/fmtulong.c + - fmtulong: if the `base' argument is invalid, make sure we index + buf by `len-1' at maximum + +print_cmd.c + - print_deferred_heredocs: don't try to dereference a NULL `cstring' + - cprintf: make sure to call va_end (args) + +variables.c + - push_dollar_vars: fix call to xrealloc to use sizeof (WORD_LIST *) + instead of sizeof (WORD_LIST **) + +lib/sh/zmapfd.c + - zmapfd: if read returns error, free result and return -1 immediately + instead of trying to reallocate it + + 11/6 + ---- +execute_cmd.c + - cpl_reap: rewrote to avoid using pointer after freeing it; now builds + new coproc list on the fly while traversing the old one and sets the + right values for coproc_list when done + + 11/12 + ----- +builtins/set.def + - if neither -f nor -v supplied, don't allow a readonly function to + be implicitly unset. Fixes bug reported by Jens Schmidt + + +lib/readline/callback.c + - change CALLBACK_READ_RETURN to clear signal handlers before returning + from rl_callback_read_char so readline's signal handlers aren't + installed when readline doesn't have control. Idea from Jan + Kratochvil and the GDB development + team + +pcomplete.h + - COPT_NOQUOTE: new complete/compgen option value + +builtins/complete.def + - noquote: new complete/compgen option; will be used to disable + filename completion quoting + +pcomplete.c + - pcomp_set_readline_variables: pay attention to COPT_NOQUOTE; turns + of rl_filename_quoting_desired if set; turns it on if unset (value + is inverted, since default is on) + +doc/bash.1,lib/readline/doc/rluser.texi + - document new -o noquote option to complete/compgen/compopt + +pathexp.c + - quote_string_for_globbing: if QGLOB_REGEXP, make sure characters + between brackets in an ERE bracket expression are not inappropriately + quoted with backslashes. This is a pretty substantial change, + should be stressed when opening bash up for alpha and beta tests. + Fixes bug pointed out by Stephane Chazleas + + +doc/{bash.1,bashref.texi} + - document that regexp matches can be inconsistent when quoting + characters in bracket expressions, since usual quoting characters + lose their meaning within brackets + - note that regular expression matching when the pattern is stored + in a shell variable which is quoted for expansion causes string + matching + +redir.h + - RX_SAVEFD: new flag value; notes that a redirection denotes an + fd used to save another even if it's not >= SHELL_FD_BASE + +redir.c + - do_redirection_internal: when deciding whether or not to reset the + close-on-exec flag on a restored file descriptor, trust the value + of redirect->flags & RX_SAVCLEXEC even if the fd is < SHELL_FD_BASE + if the RX_SAVEFD flag is set + - add_undo_redirect: set the RX_SAVEFD flag if the file descriptor + limit is such that the shell can't duplicate to a file descriptor + >= 10. Fixes a limitation that tripped a coreutils test reported + by Paul Eggert + + 11/19 + ----- +doc/{bash.1,bashref.texi},lib/readline/doc/hsuser.texi + - make it clear that bash runs HISTFILESIZE=$HISTSIZE after reading + the startup files + - make it clear that bash runs HISTSIZE=500 after reading the + startup files + - make it clear that setting HISTSIZE=0 causes commands to not be + saved in the history list + - make it clear that setting HISTFILESIZE=0 causes the history file + to be truncated to zero size + +variables.c + - sv_histsize: change so setting HISTSIZE to a value less than 0 + causes the history to be `unstifled' + - sv_histsize: change so setting HISTFILESIZE to a value less than 0 + results in no file truncation + - make it clear that numeric values less than 0 for HISTFILESIZE or + HISTSIZE inhibit the usual functions + + 11/23 + ----- +parse.y + - save_input_line_state: add missing `return ls' at the end, since the + function is supposed to return its argument. Pointed out by + Andreas Schwab + +builtins/read.def + - skip over NUL bytes in input, as most modern shells seem to. Bug + report by Matthew Story + +lib/readline/vi_mode.c + - rl_vi_replace: set _rl_vi_last_key_before_insert to invoking key + + 11/25 + ----- +builtins/read.def + - read_builtin: if xrealloc returns same pointer as first argument, + don't bother with the remove_unwind_protect/add_unwind_protect pair + - read_builtin: set a flag (`reading') around calls to zread/zreadc + and readline() + - sigalrm: change to set flag (`sigalrm_seen') and only longjmp if + currently in read(2) (reading != 0) + - CHECK_ALRM: new macro, checks sigalrm_seen and longjmps if non-zero, + behavior of old SIGALRM catching function + - read_builtin: call CHECK_ALRM in appropriate places while reading + line of input. Fixes bug reported by Pierre Gaston + + +lib/readline/vi_mode.c + - rl_vi_replace: initialize characters before printing characters in + vi_replace_keymap to their default values in vi_insertion_keymap, + since we're supposed to be in insert mode replacing characters + - rl_vi_replace: call rl_vi_start_inserting to set last command to + `R' for undo + - rl_vi_replace: set _rl_vi_last_key_before_insert to `R' for future + use by _rl_vi_done_inserting + - vi_save_insert_buffer: new function, broke out code that copies text + into vi_insert_buffer from _rl_vi_save_insert + - _rl_vi_save_replace: new function, saves text modified by + rl_vi_replace (using current point and vi_replace_count to figure + it out) to vi_replace_buffer + - _rl_vi_save_insert: call vi_save_insert_buffer + - _rl_vi_done_inserting: if _rl_vi_last_key_before_insert == 'R', call + _rl_vi_save_replace to save text modified in replace mode (uses + vi_save_insert_buffer) + - _rl_vi_replace_insert: new function, replaces the number of chars + in vi_insert_buffer after rl_point with contents ov vi_insert_buffer + - rl_vi_redo: call _rl_vi_replace_insert if last command == 'R' and + there's something in vi_insert_buffer. Fixes bug with `.' not + redoing the most recent `R' command, reported by Geoff Clare + in readline area on savannah + + 11/26 + ----- +lib/readline/rlprivate.h + - RL_SIG_RECEIVED(): evaluate to non-zero if there is a pending signal + to be handled + - RL_SIGINT_RECEIVED(): evaluate to non-zero if there is a pending + SIGINT to be handled + +lib/readline/complete.c + - remove all mention of _rl_interrupt_immediately + - rl_completion_matches: check RL_SIG_RECEIVED after each call to + the entry function, call RL_CHECK_SIGNALS if true to handle the + signal + - rl_completion_matches: if RL_SIG_RECEIVED evaluates to true, free + and zero out the match_list this function allocated + - rl_completion_matches: if the completion entry function is + rl_filename_completion_function, free the contents of match_list, + because that function does not keep state and will not free the + entries; avoids possible memory leak pointed out by + Garrett Cooper + - gen_completion_matches: if RL_SIG_RECEIVED evalutes to true after + calling rl_attempted_completion_function, free the returned match + list and handle the signal with RL_CHECK_SIGNALS; avoids + possible memory leak pointed out by Garrett Cooper + + - gen_completion_matches: if RL_SIG_RECEIVED evaluates to true after + calling rl_completion_matches, free the returned match list and + handle the signal with RL_CHECK_SIGNALS + +lib/readline/util.c + - rl_settracefp: new utility function to set the tracing FILE * + +lib/readline/signals.c + - _rl_sigcleanup: pointer to a function that will be called with the + signal and a void * argument from _rl_handle_signal + - _rl_sigcleanarg: void * that the rest of the code can set to have + passed to the signal cleanup function + - _rl_handle_signal: if _rl_sigcleanup set, call as + (*_rl_sigcleanup) (sig, _rl_sigcleanarg) + +lib/readline/rlprivate.h + - extern declarations for _rl_sigcleanup and _rl_sigcleanarg + +lib/readline/complete.c + - _rl_complete_sigcleanup: signal cleanup function for completion code; + calls _rl_free_match_list on _rl_sigcleanarg if signal == SIGINT + - rl_complete_internal: before calling display_matches if what_to_do + == `?', set _rl_sigcleanup to _rl_complete_sigcleanup so the match + list gets freed on SIGINT; avoids possible memory leak pointed out + by Garrett Cooper + - rl_complete_internal: in default switch case, call _rl_free_match_list + before returning to avoid memory leak + +doc/bashref.texi + - start at a set of examples for the =~ regular expression matching + operator, touching on keeping the pattern in a shell variable and + quoting portions of the pattern to remove their special meaning + + 12/1 + ---- +lib/glob/gmisc.c + - extglob_pattern: new function, returns 1 if pattern passed as an + argument looks like an extended globbing pattern + +lib/glob/glob.c + - skipname: return 0 immediately if extglob_pattern returns non-zero, + let the extended globbing code do the right thing with skipping + names beginning with a `.' + - mbskipname: return 0 immediately if extglob_pattern returns non-zero, + let the extended globbing code do the right thing with skipping + names beginning with a `.'. Fixes bug reported by Yongzhi Pan + + + 12/2 + ---- +lib/glob/smatch.c + - patscan, patscan_wc: no longer static so other parts of the glob + library can use them, renamed to glob_patscan, glob_patscan_wc + +lib/glob/glob.c + - extern declarations for glob_patscan, glob_patscan_wc + - wchkname: new function, does skipname on wchar_t pattern and dname, + old body of mbskipname after converting to wide chars + - extglob_skipname: new function, checks all subpatterns in an extglob + pattern to determine whether or not a filename should be skipped. + Calls skipname for each subpattern. Dname is only skipped if all + subpatterns indicate it should be. Better fix for bug reported by + Yongzhi Pan + - wextglob_skipname: wide-char version of extglob_skipname, calls + wchkname instead of calling back into mbskipname for each + subpattern to avoid problems with char/wchar_t mismatch + - skipname: call extglob_skipname if extglob_pattern returns non-zero + - mbskipname: call wextglob_skipname if extglob_pattern returns non-zero + - mbskipname: short-circuit immediately if no multibyte chars in + pattern or filename + +execute_cmd.c + - execute_cond_node: added parens to patmatch assignment statement to + make intent clearer + + 12/3 + ---- +configure.in,config.h.in + - check for imaxdiv, define HAVE_IMAXDIV if present + +expr.c + - expassign, exp2: use imaxdiv if available. Doesn't help with checks + for overflow from 10/25 + + 12/6 + ---- +lib/readline/complete.c + - compute_lcd_of_matches: if we're ignoring case in the matches, only + use what the user typed as the lcd if it matches the first match + (after sorting) up to the length of what was typed (if what the + user typed is longer than the shortest of the possible matches, use + the shortest common length of the matches instead). If it doesn't + match, use the first of the list of matches, as if case were not + being ignored. Fixes bug reported by Clark Wang + + + 12/7 + ---- +builtins/cd.def + - cd_builtin: add code to return error in case cd has more than one + non-option argument, conditional on CD_COMPLAINS define (which is + not defined anywhere) + +doc/{bash.1,bashref.texi} + - note that additional arguments to cd following the directory name + are ignored. Suggested by Vaclav Hanzl + + 12/10 + ----- +lib/readline/input.c + - rl_read_key: don't need to increment key sequence length here; doing + it leads to an off-by-one error + +lib/readline/macro.c + - rl_end_kbd_macro: after off-by-one error with rl_key_sequence_length + fixed, can decrement current_macro_index by rl_key_sequence_length + (length of key sequence that closes keyboard macro) + +lib/readline/readline.c + - _rl_dispatch_subseq: fix extra increment of rl_key_sequence_length + when ESC maps to a new keymap and we're converting meta characters + to ESC+key + - _rl_dispatch_subseq: better increment of rl_key_sequence_length + before we dispatch to a function in the ISFUNC case (where the + second increment above should have happened) + - rl_executing_keyseq: the full key sequence that ended up executing + a readline command. Available to the calling application, maintained + by _rl_dispatch_subseq, indexed by rl_key_sequence_length + - rl_executing_key: the key that was bound to the currently-executing + readline command. Same as the `key' argument to the function + +lib/readline/readline.h + - rl_executing_keyseq: extern declaration + - rl_executing_key: extern declaration + - rl_key_sequence_length: declaration moved here from rlprivate.h, + now part of public interface + +lib/readline/rlprivate.h + - new extern declaration for _rl_executing_keyseq_size, buffer size + for rl_executing_keyseq + +lib/readline/doc/rltech.texi + - documented new variables: rl_executing_key, rl_executing_keyseq, + rl_key_sequence_length + + 12/13 + ----- +bashline.c + - bash_execute_unix_command: replace ad-hoc code that searches + cmd_xmap for correct command with call to rl_function_of_keyseq + using rl_executing_keyseq; now supports key sequences longer + than two characters. Fixes bug reported by Michael Kazior + + + 12/15 + ----- +make_cmd.c + - make_function_def: don't null out source_file before calling + make_command so it can be used later on when the function definition + is executed + +execute_cmd.c + - execute_intern_function: second argument is now FUNCTION_DEF * + instead of COMMAND * + - execute_command_internal: call execute_intern_function with the + new second argument (the entire FUNCTION_DEF instead of just the + command member) + - execute_intern_function: if DEBUGGER is defined, call + bind_function_def before calling bind_function, just like + make_function_def does (might be able to take out the call in + make_function_def depending on what the debugger does with it). + Fixes bug reported by + +expr.c + - more minor changes to cases of INTMAX_MIN % -1 and INTMAX_MIN / 1; + fix typos and logic errors + + 12/16 + ----- +bashline.c + - find_cmd_start: change flags to remove SD_NOSKIPCMD so it skips over + command substitutions and doesn't treat them as command separators + - attempt_shell_completion: instead of taking first return from + find_cmd_name as command name to use for programmable completion, + use loop to skip over assignment statements. Fixes problem reported + by Raphael Droz + - attempt_shell_completion: if we don't find a command name but the + command line is non-empty, assume the other words are all assignment + statements and flag that point is in a command position so we can + do command name completion + - attempt_shell_completion: if the word being completed is the first + word following a series of assignment statements, and the + command line is non-empty, flag that point is in a command position + so we can do command name completion + +lib/readline/history.c + - history_get_time: atol -> strtol + + 12/18 + ----- +parse.y + - parser_in_command_position: external interface to the + command_token_position macro for use by other parts of the shell, + like the completion mechanism + +externs.h + - extern declaration for parser_in_command_position + + 12/19 + ----- + +builtins/read.def + - read_builtin: make sure all calls to bind_read_variable are passed + a non-null string. Fixes bug reported by Dan Douglas + + +bashline.c + - attempt_shell_completion: mark that we're in a command position if + we're at the start of the line and the parser is ready to accept + a reserved word or command name. Feature most recently suggested + by Peng Yu + + 12/21 + ----- +lib/readline/bind.c + - _rl_escchar: return the character that would be backslash-escaped + to denote the control character passed as an argument ('\n' -> 'n') + - _rl_isescape: return 1 if character passed is one that has a + backslash escape + - _rl_untranslate_macro_value: new second argument: use_escapes, if + non-zero translate to backslash escapes where possible instead of + using straight \C-x for control character `x'. Change callers + - _rl_untranslate_macro_value: now global + +lib/readline/rlprivate.h + - _rl_untranslate_macro_value: extern declaration + +lib/readline/{macro.c,readline.h} + - rl_print_last_kbd_macro: new bindable function, inspired by patch + from Mitchel Humpherys + +lib/readline/funmap.c + - print-last-kbd-macro: new bindable command, bound to + rl_print_last_kbd_macro + +lib/readline/doc/{rluser.texi,readline.3},doc/bash.1 + - print-last-kbd-macro: document. + +lib/readline/text.c + - _rl_insert_next: if we're defining a macro, make sure the key gets + added to the macro text (should really audit calls to rl_read_key() + and make sure the right thing is happening for all of them) + +bashline.[ch] + - print_unix_command_map: new function, prints all bound commands in + cmd_xmap using rl_macro_dumper in a reusable format + +builtins/bind.def + - new -X option: print all keysequences bound to Unix commands using + print_unix_command_map. Feature suggested by Dennis Williamson + (2/2011) + +doc/{bash.1,bashref.texi} + - document new `bind -X' option + + 12/24 + ----- + +doc/{bash.1,bashref.texi} + - add a couple of sentences to the description of the case modification + operators making it clearer that each character of parameter is + tested against the pattern, and that the pattern should only attempt + to match a single character. Suggested by Bill Gradwohl + + + 12/28 + ----- +shell.c + - init_noninteractive: instead of calling set_job_control(0) to + unconditionally turn off job control, turn on job control if + forced_interactive or jobs_m_flag is set + - shell_initialize: call initialize_job_control with jobs_m_flag as + argument so `bash -m script' enables job control while running the + script + +jobs.c + - initialize_job_control: if the `force' argument is non-zero, turn on + job control even if the shell is not currently interactive + (interactive == 0) + + 12/29 + ----- + +flags.h + - new extern declaration for jobs_m_flag + +builtins/{cd,set}.def,doc/{bash.1,bashref.texi} + - added text clarifying the descriptions of cd -L and -P, suggested by + Padraig Brady + - slight change to the description of `set -P' about resolving symbolic + links + +lib/readline/doc/rluser.texi + - Added an example to the programmable completion section: _comp_cd, + a completion function for cd, with additional verbiage. Text + includes a reference to the bash_completion project + + 1/1/2012 + -------- +jobs.c + - set_job_status_and_cleanup: note that a job is stopped due to + SIGTSTP (any_tstped) if job_control is set; there's no need to + test interactive + + 1/5 + --- +quit.h + - LASTSIG(): new macro, expands to signal number of last terminating + signal received (terminating_signal or SIGINT) + +trap.c + - first_pending_trap: returns lowest signal number with a trap pending + - trapped_signal_received: set to the last trapped signal the shell + received in trap_handler(); reset to 0 in run_pending_traps + +builtins/read.def + - read_builtin: changes to posix-mode (posixly_correct != 0) to make + `read' interruptible by a trapped signal. After the trap runs, + read returns 128+sig and does not assign the partially-read line + to the named variable(s). From an austin-group discussion started + by David Korn + + 1/11 + ---- +doc/{bash.1,bashref.texi} + - slight changes to the descriptions of the compat32 and compat40 shell + options to clarify their meaning + + 1/12 + ---- +lib/readline/{colors.[ch],parse-colors.[ch]} + - new files, part of color infrastructure support + +Makefile.in,lib/readline/Makefile.in + - arrange to have colors.o and parse-colors.o added to readline + library + +{configure,config.h}.in + - check for stdbool.h, define HAVE_STDBOOL_H if found + + 1/14 + ---- +lib/readline/bind.c + - colored_stats: new bindable variable, enables using colors to + indicate file type when listing completions + +lib/readline/complete.c + - _rl_colored_stats: new variable, controlled by colored-stats bindable + variable + - colored_stat_start, colored_stat_end: new functions to set and reset + the terminal color appropriately depending on the type of the + filename to be printed + - print_filename: changes to print colors if `colored-stats' variable + set. Changes contributed by Raphael Droz + + +lib/readline/readline.c + - rl_initialize_everything: add call to _rl_parse_colors to parse + color values out of $LS_COLORS. May have to add to rl_initialize + to make more dynamic if LS_COLORS changes (which doesn't happen + very often, if at all) + +lib/readline/rlprivate.h + - _rl_colored_stats: new extern declaration + +lib/readline/doc/{readline.3,rluser.texi},doc/bash.1 + - colored-stats: document new bindable readline variable + +lib/readline/colors.c + - _rl_print_color_indicator: call rl_filename_stat_hook before calling + lstat/stat so we can get color indicators for stuff like + $HOME/Applications + +lib/readline/complete.c + - stat_char: call rl_filename_stat_hook before calling lstat/stat + +findcmd.[ch],execute_cmd.c + - search_for_command: now takes a second `flags' argument; changed + header function prototype and callers + - search_for_command: if (flags & 1), put the command found in $PATH + into the command hash table (previous default behavior) + +execute_cmd.c + - is_dirname: call search_for_command with flags argument of 0 so it + doesn't try to put something in the command hash table + +bashline.c + - bash_command_name_stat_hook: a hook function for readline's + filename_stat_hook that does $PATH searching the same way that + execute_cmd.c:execute_disk_command() does it, and rewrites the + passed filename if found. Does not put names into command hash + table. This allows command name completion to take advantage + of `visible-stats' and `colored-stats' settings. + - executable_completion: new function, calls the directory completion + hook to expand the filename before calling executable_file or + executable_or_directory; change command_word_completion_function to + call executable_completion. This allows $HOME/bin/[TAB] to do + command completion and display alternatives + + 1/17 + ---- +pcomplete.c + - gen_command_matches: now takes a new second argument: the command + name as deciphered by the programmable completion code and used + to look up the compspec; changed callers (gen_compspec_completions) + - gen_shell_function_matches: now takes a new second argument: the + command that originally caused the completion function to be + invoked; changed callers (gen_compspec_completions)) + - build_arg_list: now takes a new second argument: the command name + corresponding to the current compspec; changed callers + (gen_command_matches, gen_shell_function_matches) + - build_arg_list: now uses `cmd' argument to create $1 passed to + invoked command or shell function + - gen_compspec_completions: if we skipped a null command at the + beginning of the line (e.g., for completing `>'), add a new word for + it at the beginning of the word list and increment nw and cw + appropriately. This is all a partial fix for the shortcoming + pointed out by Sung Pae + + 1/18 + ---- + +{configure,config.h}.in + - new check: check for AUDIT_USER_TTY defined in , + define HAVE_DECL_AUDIT_USER_TTY if both are found + +lib/readline/rlconf.h + - ENABLE_TTY_AUDIT_SUPPORT: new define, allows use of the Linux kernel + tty auditing system if it's available and enabled + +lib/readline/util.c + - _rl_audit_tty: new function, send a string to the kernel tty audit + system + +lib/readline/rlprivate.h + - _rl_audit_tty: new extern declaration + +lib/readline/readline.c + - readline: call _rl_audit_tty with line to be returned before returning + it if the Linux tty audit system is available and it's been enabled + in rlconf.h Original patch from Miroslav Trmac; recent request + from Miroslav Lichvar + + 1/21 + ---- + +lib/readline/readline.c: + - _rl_dispatch_subseq: add an inter-character timeout for multi-char + key sequences. Suggested by . Still needs + work to make a user-settable variable + +parse.y + - shell_getc: make code that uses the pop_alias dependent on ALIAS + define + +variables.h + - sv_tz: extern define should only depend on HAVE_TZSET + +expr.c + - expr_streval: if ARRAY_VARS is not defined, set lvalue->ind to -1; + move assignment to `ind' inside define + - expr_bind_array_element: declaration and uses need to be #ifdef + ARRAY_VARS + +arrayfunc.h + - AV_ALLOWALL, AV_QUOTED, AV_USEIND: define to 0 if ARRAY_VARS not + defined; used in subst.c unconditionally + +sig.h + - make the signal blocking functions not dependent on JOB_CONTROL + +sig.c + - sigprocmask: make the replacement definition not dependent on + JOB_CONTROL + +trap.c + - use BLOCK_SIGNAL/UNBLOCK_SIGNAL instead of code dependent on + HAVE_POSIX_SIGNALS and BSD signals + + 1/24 + ---- + +print_cmd.c + - print_redirection_list: change the conditions under which + r_duplicating_output_word is mapped to r_err_and_out to more or + less match those used in redir.c. Fixes bug pointed out by + Dan Douglas + + + 1/29 + ---- +lib/readline/signals.c + - _rl_block_sigwinch,_rl_release_sigwinch: don't compile in bodies + unless SIGWINCH is defined. Fixes bug reported by Pierre Muller + + +doc/{bash.1,bashref.texi} + - small modifications to the introduction to the REDIRECTION section + to describe how redirections can modify file handles + - small modification to the section describing base#n to make it + clearer that n can be denoted using non-numerics. From a posting + by Linda Walsh + + 2/2 + --- +builtins/printf.def + - printf_builtin: make sure vbuf is intialized and non-null when -v + is supplied, since other parts of the code assume that it's not + null (e.g., bind_printf_variable()). Fixes bug reported by Jim + Avera + + 2/4 + --- +lib/readline/undo.c + - _rl_free_undo_list: new function, old body of rl_free_undo_list, + frees undo entries in UNDO_LIST * passed as argument + - rl_free_undo_list: call _rl_free_undo_list + +lib/readline/rlprivate.h + - _rl_free_undo_list: new extern declaration + - _rl_keyseq_timeout: new extern declaration (see below) + +lib/readline/misc.c + - rl_clear_history: new function. Clears the history list and frees + all associated data similar to history.c:clear_history(), but + takes rl_undo_list into account and frees and UNDO_LISTs saved as + `data' members of a history list entry + +lib/readline/doc/rltech.texi + - rl_clear_history: documented + +lib/readline/readline.c + - _rl_keyseq_timeout: new variable to hold intra-key timeout value + from 1/21 fix; specified in milliseconds. Default value is 500 + - _rl_dispatch_subseq: change to use _rl_keyseq_timeout as intra-key + timeout if it's greater than 0; no timeout if <= 0 + - _rl_dispatch_subseq: don't check for queued keyboard input if we have + pushed or pending input, or if we're reading input from a macro + +lib/readline/bind.c + - keyseq-timeout: new bindable variable, shadows _rl_keyseq_timeout + - string_varlist: add keyseq-timeout + - sv_seqtimeout: new function to modify value of _rl_keyseq_timeout; + clamps negative values at 0 for now + - _rl_get_string_variable_value: return value for keyseq-timeout + +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - keyseq-timeout: documented + +lib/readline/isearch.c + - _rl_isearch_dispatch: modification to fix from 7/18 to not use + cxt->keymap and cxt->okeymap, since by the time this code is + executed, they are equal. Use `f' to check for rl_insert or + unbound func + - _rl_isearch_dispatch: if we're switching keymaps, not in + callback mode, and don't have pending or pushed input, use + _rl_input_queued to resolve a potentially ambiguous key sequence. + Suggested by Roger Zauner + - _rl_isearch_dispatch: if we have changed keymaps and resolved to + an editing function (not self-insert), make sure we stuff the + right characters back onto the input after changing the keymap + back so the right editing function is executed after the search + is terminated. Rest of fix for bug reported by Roger Zauner + + + 2/5 + --- +builtins/gen-helpfiles.c + - new file: reads struct builtin and writes the long docs to files + in the `helpdirs' subdirectory. The filename is given in the + previously-unused `handle' member of the struct builtin. Links + with `tmpbuiltins.o', which is created by Makefile to have the + right long documentation. When not cross-compiling, gets the + right #defines based on configuration options from config.h instead + of trying to parse conditional parts of def files. Fixes + shortcoming pointed out by Andreas Schwab + +builtins/Makefile.in + - tmpbuiltins.c: new generated file, created to enable creation of + separate helpfiles based on correct #defines instead of trying to + parse conditional parts of def files + - gen-helpfiles: new program to generate helpfiles, links with + tmpbuiltins.o + - HELPFILES_TARGET: new target, substituted by configure to `helpdoc' + if separate helpfiles requested + - targets: new target, libbuiltins.a and $(HELPFILES_TARGET) + - CREATED_OBJECTS: new variable, holds created object files for + make clean; changed make clean to remove created objects + - helpdoc: changed to call gen-helpfiles instead of mkbuiltins + +Makefile.in + - when building libbuiltins.a, recursively call make with `targets' + argument to make sure separate helpfiles get built + +configure.in + - substitute `helpdoc' as value of HELPFILES_TARGET if + --enable-separate-helpfiles supplied as configure argument + +builtins/mkbuiltins.c + - `-nofunctions': new argument, causes mkbuiltins to not write value + for function implementing a particular builtin to struct builtin + and to write document file name to `handle' member of struct builtin + - no longer writes separate helpfiles; that is left to gen-helpfiles + + 2/8 + --- +subst.c + - make sure last_command_exit_value is set to a non-zero value before + any calls to report_error, since `-e' set will short-circuit + report_error. Fixes bug reported by Ewan Mellor + + +variables.c + - make_local_array_variable: added second argument; if non-zero, + function will return an existing local associative array variable + instead of insisting on an indexed array + +variable.h,subst.c + - make_local_array_variable: changed prototype and caller + +builtins/declare.def + - declare_internal: add second arg to call to make_local_array_variable; + making_array_special, which indicates we're processing an + assignment like declare a[b]=c. Fixes seg fault resulting from + a being an already-declared local associative array variable in a + function. Ubuntu bash bug 928900. + + 2/14 + ---- + +execute_cmd.c + - execute_command_internal: if redirections into or out of a loop fail, + don't try to free ofifo_list unless saved_fifo is non-zero. It's + only valid if saved_fifo is set + + 2/15 + ---- +{arrayfunc,braces,variables}.c + - last_command_exit_value: make sure it's set before any calls to + report_error, since -e will cause that to exit the shell + +builtins/common.c + - get_job_by_name: call internal_error instead of report_error so this + doesn't exit the shell + + 2/18 + ---- +builtins/evalstring.c + - parse_and_execute: make sure the file descriptor to be redirected to + is 1 before calling cat_file. One fix for bug reported by Dan Douglas + + +parse.y + - read_token_word: don't return NUMBER if a string of all digits + resolves to a number that overflows the bounds of an intmax_t. + Other fix for bug reported by Dan Douglas + + 2/19 + ---- +lib/sh/strtrans.c + - ansicstr: use 0x7f as the boundary for characters that translate + directly from ASCII to unicode (\u and \U escapes) instead of + UCHAR_MAX, since everything >= 0x80 requires more than one byte. + Bug and fix from John Kearney + +builtins/printf.def + - tescape: ditto for printf \u and \U escape sequences + + 2/20 + ---- +lib/sh/unicode.c + - u32toutf8: fix to handle encodings up to six bytes long correctly + (though technically UTF-8 only has characters up to 4 bytes long). + Report and fix from John Kearney + - u32toutf8: first argument is now an unsigned 32-bit quantity, + changed callers (u32cconv) to pass c instead of wc + - u32reset: new function, resets local static state to uninitialized + (locale information, currently) + +locale.c + - call u32reset whenever LC_CTYPE/LC_ALL/LANG is changed to reset the + cached locale information used by u32cconv. From a report from + John Kearney + + 2/21 + ---- +doc/{bash,builtins}.1 + - minor changes from Bjarni Ingi Gislason + +lib/sh/unicode.c + - u32cconv: only assume you can directly call wctomb on the passed + value if __STDC_ISO_10646__ is defined and the value is <= + 0x7fffffff + - stub_charset: return locale as default instead of "ASCII", let + rest of code decide what to do with it + +lib/readline/parens.c + - _rl_enable_paren_matching: make paren matching work in vi insert + mode. Bug report from + + 2/22 + ---- +lib/sh/shquote.c + - sh_backslash_quote: quote tilde in places where it would be + expanded. From a report from John Kearney + + 2/23 + ---- +execute_cmd.c + - execute_pipeline: wrap the discard_unwind_frame call in #ifdef + JOB_CONTROL, since the frame is only created if JOB_CONTROL is + defined. Bug and fix from Doug Kehn + + 2/25 + ---- +error.c + - report_error: make sure last_command_exit_value is non-zero before + we call exit_shell, since the exit trap may reference it. Call + exit_shell with last_command_exit_value to allow exit statuses + other than 1 + +unicode.c + - stub_charset: use local static buffer to hold charset, don't change + value returned by get_locale_var. Based on idea and code from + John Kearney + - u32toutf16: function to convert unsigned 32-bit value (unicode) to + UTF-16. From John Kearney + - u32cconv: call u32toutf16 if __STDC_ISO_10646__ defined and wchar_t + is two bytes, send result to wcstombs, return if not encoding error. + From John Kearney + - u32cconv: return UTF-8 conversion if iconv conversion to local + charset is unsupported + + 3/2 + --- +lib/readline/complete.c + - print_filename: if there is no directory hook, but there is a stat + hook, and we want to append a slash to directories, call the stat + hook before calling path_isdir on the expanded directory name. + Report and pointer to fix from Steve Rago + + 3/3 + --- +builtins/evalstring.c + - parse_and_execute: fix to change of 2/18: make sure the file + descriptor being redirected to is 0 before calling cat_file when + we see something like $(< file). Real fix for bug reported by + Dan Douglas + +subst.c + - parameter_brace_patsub: run the replacement string through quote + removal even if the expansion is within double quotes, because + the parser and string extract functions treat the quotes and + backslashes as special. If they're treated as special, quote + removal should remove them (this is the Posix position and + compatible with ksh93). THIS IS NOT BACKWARDS COMPATIBLE. + + 3/4 + --- +lib/readline/complete.c + - rl_menu_complete: fix to make show-all-if-ambiguous and + menu-complete-display-prefix work together if both are set. Fix + from Sami Pietila + + 3/5 + --- +bashline.c + - dircomplete_expand_relpath: new variable, if non-zero, means that + `shopt -s direxpand' should expand relative pathnames. Zero by + default, not user-settable yet + - bash_directory_completion_hook: if we have a relative pathname that + isn't changed by canonicalization or spell checking after being + appended to $PWD, then don't change what the user typed. Controlled + by dircomplete_expand_relpath + + 3/7 + --- +m4/timespec.m4 + - new macros, cribbed from gnulib and coreutils: find out whether we + have `struct timespec' and what file includes it + +m4/stat-time.m4 + - new macros, cribbed from gnulib and coreutils: find out whether the + mtime/atime/ctime/etctime fields of struct stat are of type + struct timespec, and what the name is + +include/stat-time.h + - new file, cribbed from gnulib, with additions from coreutils: include + the right file to get the struct timespec define, or provide our own + replacement. Provides a bunch of inline functions to turn the + appropriate members of struct stat into `struct timespec' values, + zeroing out the tv_nsec field if necessary + +test.c + - include "stat-time.h" for the nanosecond timestamp resolution stuff + - stat_mtime: new function, returns struct stat and the mod time + normalized into a `struct timespec' for the filename passed as the + first argument + - filecomp: call stat_mtime instead of sh_stat for each filename + argument to get the mtime as a struct timespec + - filecomp: call timespec_cmp instead of using a straight arithmetic + comparison for the -nt and -ot operators, using timespec returned by + stat_mtime. Added functionality requested by by Werner Fink + for systems that can support it + + 3/10 + ---- +include/posixdir.h + - REAL_DIR_ENTRY: remove dependency on _POSIX_SOURCE, only use feature + test macros to decide whether dirent.d_ino is present and usable; + define D_INO_AVAILABLE. Report and fix from Fabrizion Gennari + + - D_FILENO_AVAILABLE: define if we can use dirent.d_fileno + +lib/sh/getcwd.c + - use D_FILENO_AVAILABLE to decide whether or not to compile in + _path_checkino and whether or not to call it. Report and initial + fix from Fabrizion Gennari + +lib/readline/signals.c + - make sure all occurrences of SIGWINCH are protected by #ifdef + +sig.c + - make sure all occurrences of SIGCHLD are protected by #ifdef + +nojobs.c + - make sure SA_RESTART is defined to 0 if the OS doesn't define it + +version.c + - show_shell_version: don't use string literals in printf, use %s. + Has added benefit of removing newline from string to be translated + +trap.c + - queue_sigchld_trap: new function, increments the number of pending + SIGCHLD signals by the argument, which is by convention the number + of children reaped in a call to waitchld() + +trap.h + - queue_sigchld_trap: new extern declaration + +jobs.c + - waitchld: if called from the SIGCHLD signal handler (sigchld > 0), + then call queue_sigchld_trap to avoid running the trap in a signal + handler context. Report and original fix from Siddhesh Poyarekar + + +lib/sh/unicode.c + - u32tocesc: take an unsigned 32-bit quantity and encode it using + ISO C99 string notation (\u/\U) + - u32cconv: call u32tocesc as a fallback instead of u32cchar + - u32cconv: call u32tocesc if iconv cannot convert the character. + Maybe do the same thing if iconv_open fails + - u32reset: call iconv_close on localconv if u32init == 1 + + 3/11 + ---- +config-top.h + - CHECKWINSIZE_DEFAULT: new define, set to initial value of + check_window_size (shopt checkwinsize): 0 for off, 1 for on. + Default is 0 + +{jobs,nojobs}.c + - check_window_size: default initial value to CHECKWINSIZE_DEFAULT + + 3/13 + ---- +doc/bashref.texi + - change text referring to the copying restrictions to that + recommended by the FSF (no Front-Cover Texts and no Back-Cover + Texts) + +lib/readline/doc/{history,rlman,rluserman}.texi + - change text referring to the copying restrictions to that + recommended by the FSF (no Front-Cover Texts and no Back-Cover + Texts) + + 3/15 + ---- +array.c + - LASTREF_START: new macro to set the starting position for an array + traversal to `lastref' if that's valid, and to the start of the array + if not. Used in array_reference, array_insert, array_remove + - array_remove: try to be a little smarter with lastref instead of + unconditionally invalidating it + + 3/16 + ---- +array.c + - array_insert: fix memory leak by deleting element to be added in the + case of an error + + 3/18 + ---- +lib/sh/mbschr.c + - mbschr: don't call mbrlen unless is_basic is false; devolves to a + straight character-by-character run through the string + + 3/19 + ---- +stringlib.c + - substring: use memcpy instead of strncpy, since we know the length + and are going to add our own NUL terminator + + 3/20 + ---- +subst.c + - parameter_brace_expand_rhs: if expand_string_for_rhs returns a quoted + null string (a list with one element for which + QUOTED_NULL(list->word->word) returns true), return the quoted null + and set the flags in the returned word to indicate it. Fixes bug + reported by Mark Edgar + +lib/sh/tmpfile.c + - use random(3) instead of get_random_number to avoid perturbing the + random sequence you get using $RANDOM. Bug report and fix from + Jurij Mihelic + + 3/21 + ---- +config-top.h + - OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT: define to 1 to optimize + sequential indexed array assignment patterns. Defined to 1 by + default + +array.c + - array_insert: if OPTIMIZE_SEQUENTIAL_ARRAY_ASSIGNMENT is defined, + start the search at lastref (see change from 3/15) + + 3/27 + ---- +print_cmd.c + - debug_print_word_list: new debugging function, prints a word list + preceded by an optional string and using a caller-specified + separator + + 4/1 + --- +command.h + - W_ASSNGLOBAL: new flag, set to indicate declare -g + +execute_cmd.c + - fix_assignment_words: note that we have a -g argument to an assignment + builtin and set the W_ASSNGLOBAL flag in the variable word + +subst.c + - dump_word_flags: print out W_ASSNGLOBAL if present + - do_assignment_internal: only set ASS_MKLOCAL if W_ASSIGNARG is set + and W_ASSNGLOBAL is not. Don't want to create a local variable even + if variable_context is non-zero if ASSNGLOBAL is set. Fixes bug + reported by Bill Gradwohl + + 4/7 + --- +lib/readline/readline.c + - _rl_dispatch_subseq: make the `keyseq-timeout' variable apply to + ESC processing when in vi mode. After hitting ESC, readline will + wait up to _rl_keyseq_timeout*1000 microseconds (if set) for + additional input before dispatching on the ESC and switching to + command/movement mode. Completes timeout work suggested by + ; this prompted by report from Barry Downes + + +lib/sh/shmbchar.c + - sh_mbsnlen: new function, returns the number of (possibly multibyte) + characters in a passed string with a passed length, examining at most + maxlen (third argument) bytes + +externs.h + - sh_mbsnlen: extern declaration for new function + +shell.c + - exit_shell: call maybe_save_shell_history if remember_on_history is + set, not just in interactive shells. That means the history is + saved if history is enabled, regardless of whether or not the shell + is interactive + +doc/{bash.1,bashref.texi} + - TMOUT: fix description to make it explicit that TMOUT is the timeout + period for a complete line of input, not just any input. Fixes + problem reported in Ubuntu bug 957303: + https://bugs.launchpad.net/ubuntu/+source/bash/+bug/957303 + - HISTFILE: document change to write history list to history file in + any shell with history enabled, not just interactive shells. This + seems to be more logical behavior. Suggested by Greg Wooledge + + + 4/12 + ---- +lib/readline/colors.h + - only include stdbool.h if HAVE_STDBOOL_H is defined + - if HAVE_STDBOOL_H is not defined, provide enough definition for the + library to use `bool', `true', and `false' + +lib/readline/parse-colors.[ch] + - don't try to include at all; rely on colors.h to do it + +lib/sh/snprintf.c + - vsnprintf_internal: only treat '0' as a flag to indicate zero padding + if `.' hasn't been encountered ((flags&PF_DOT) == 0); otherwise treat + it as the first digit of a precision specifier. Fixes bug reported + by Petr Sumbera + + 4/15 + ---- +lib/sh/snprintf.c + - vsnprintf_internal: if the '0' and '-' flags both occur, the '0' + flag is ignored -- Posix. Start of a series of fixes based on + tests and patches from Petr Sumbera + - PUT_PLUS: make sure PF_PLUS flag is specified before putting the `+' + - vsnprintf_internal: when '+' is read as a flag, don't set right- + justify flag if the LADJUST (`-') flag has already been supplied + - floating: make sure to output space padding before the `+', zero + padding after + - exponent: make sure to output space padding before the `+', zero + padding after + - exponent: only subtract one from the width for the decimal point + if we're really going to print one + - floating: use presence of PF_PLUS flag to decide whether to account + for the `+' in the padded field width. Ditto for exponent() + + 4/16 + ---- +lib/sh/snprintf.c + - vsnprint_internal: only reduce precision by 1 when processing the `g' + format if it's > 0. A precision of 0 should stay 0; otherwise it + gets set to -1 (NOT_FOUND) and converted to the default + - number, lnumber: if an explicit precision is supplied, turn off the + zero-padding flag and set the pad character back to space + - number, lnumber: only account for a `+' when performing the field + width calculation if the coversion is base 10; we don't add a `+' + for other bases + + 4/18 + ---- +tests/printf3.sub + - try using "perl -e 'print time'" to get the current time in seconds + since the epoch if "date +%s" is not available (solaris 8-10) + + 4/19 + ---- +tests/run-printf + - use cat -v instead of relying on diff -a being available to convert + control characters to ascii and avoid the dreaded "Binary files + /tmp/xx and printf.right differ" + + 4/20 + ---- +lib/sh/strftime.c + - incoporated new version from Aharon Robbins + + 4/22 + ---- +doc/{bash.1,bashref.texi} + - slight change to the description of /dev/tcp and /dev/udp + +subst.c + - match_wpattern: logic fix to the calculation of `simple' (was |=, + needs to be &=). Bug report from Mike Frysinger , + fix from Andreas Schwab + +bashline.c + - bash_filename_stat_hook: add code from bash_directory_completion_hook + that performs pathname canonicalization in the same way that cd and + other builtins will do + + 4/25 + ---- +execute_cmd.c + - execute_pipeline: change the call to move_to_high_fd to make it use + getdtablesize() and to not stomp on existing open file descriptors, + like the fd the shell is using to read a script. Bug report from + Greg Wooledge + + 5/6 + --- +subst.c + - expand_word_internal: case '$': after calling param_expand and + setting had_quoted_null, set TEMP to null. The code that builds the + returned string at the end of the function will take care of making + and returning a quoted null string if there's nothing else in + ISTRING. If there is, the quoted null should just go away. Part of + fix for bug reported by Ruediger Kuhlmann + - expand_word_internal: when processing ISTRING to build return value, + only set W_HASQUOTEDNULL in the returned word flags if the word is + a quoted null string AND had_quoted_null is set. Rest of fix + + 5/9 + --- +variables.c + - bind_variable_internal: if we get an array variable here (implicit + assignment to index 0), call make_array_variable_value, which + dummies up a fake SHELL_VAR * from array[0]. This matters when + we're appending and have to use the current value + - bind_variable_internal: after computing the new value, treat assoc + variables with higher precedence than simple array variables; it + might be that a variable has both attributes set + +arrayfunc.c + - bind_array_var_internal: break code out that handles creating the + new value to be assigned to an array variable index into a new + function, make_array_variable_value. This handles creating a + dummy SHELL_VAR * for implicit array[0] assignment. Fixes bug + reported by Dan Douglas + +arrayfunc.h + - make_array_variable_value: new extern declaration + + 5/19 + ---- +variables.c + - bind_int_variable: if an assignment statement like x=y comes in + from the expression evaluator, and x is an array, handle it like + x[0]=y. Fixes bug reported by Dan Douglas + + 5/24 + ---- + +braces.c + - mkseq: handle possible overflow and break the sequence generating + loop if it occurs. Fixes OpenSUSE bug 763591: + https://bugzilla.novell.com/show_bug.cgi?id=763591 + + 5/25 + ---- +Makefile.in + - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools + buildversion, mksignames, mksyntax + - LDFLAGS_FOR_BUILD: add to compilation recipes for test tools + recho, zecho, printenv, xcase + +builtins/Makefile.in + - LDFLAGS_FOR_BUILD: add to compilation recipes for build tools + gen-helpfiles, psize.aux + +variables.c + - bind_int_variable: if LHS is a simple variable name without an array + reference, but resolves to an array variable, call + bind_array_variable with index 0 to make x=1 equivalent to x[0]=1. + Fixes bug reported by Dan Douglas + + 5/27 + ---- +subst.c + - expand_word_internal: make sure has_dollar_at doesn't get reset before + recursive calls to param_expand or expand_word_internal, since it has + to save state of what came before. Use temp variable and make sure + has_dollar_at is incremented if recursive call processes "$@". + Fixes bug reported by gregrwm and + supplemented by Dan Douglas + +doc/{bash.1,bashref.texi} + - changes to the description of substring expansion inspired by + suggestions from Bill Gradwohl + +doc/bashref.texi + - added substring expansion examples inspired by suggestions from + Bill Gradwohl + +variables.c + - find_shell_variable: search for a variable in the list of shell + contexts, ignore the temporary environment + - find_variable_tempenv: search for a variable in the list of shell + contexts, force search of the temporary environment + - find_variable_notempenv: search for a variable in the list of shell + contexts, don't force search of the temporary environment + +variables.h + - find_shell_variable: extern declaration + - find_variable_tempenv: extern declaration + - find_variable_notempenv: extern declaration + +arrayfunc.c + - bind_array_variable: call find_shell_variable instead of calling + var_lookup directly + +findcmd.c + - search_for_command: call find_variable_tempenv instead of + find_variable_internal directly + - _find_user_command_internal: call find_variable_tempenv instead of + find_variable_internal directly + +builtins/setattr.def + - set_var_attribute: call find_variable_notempenv instead of + find_variable_internal directly + - show_name_attributes: call find_variable_tempenv instead of + find_variable_internal directly + + 6/1 + --- +sig.c + - termsig_handler: don't try to save the shell history on a terminating + signal any more, since it just causes too many problems on Linux + systems using glibc and glibc malloc + +lib/readline/vi_mode.c + - rl_vi_change_to: change to correctly redo `cc', since `c' is not a vi + motion character. From Red Hat bug 813289 + - rl_vi_delete_to: change to correctly redo `dd', since `d' is not a vi + motion character + - rl_vi_yank_to: change to correctly redo `yy', since `y' is not a vi + motion character + + 6/4 + --- +lib/sh/mktime.c + - current versions of VMS do not need to include . Fix from + John E. Malmberg + + 6/5 + --- +lib/sh/eaccess.c + - sh_stat: instead of using a static buffer to do the DEV_FD_PREFIX + translation, use a dynamically-allocated buffer that we keep + resizing. Fixes potential security hole reported by David Leverton + + + 6/5 + --- +braces.c + - expand_seqterm: check errno == ERANGE after calling strtoimax for + rhs and incr. Part of a set of fixes from Scott McMillan + + - expand_seqterm: incr now of type `intmax_t', which changes + arguments to mkseq + - mkseq: a better fix for detecting overflow and underflow since it's + undefined in C and compilers `optimize' out overflow checks. Uses + ADDOVERFLOW and SUBOVERFLOW macros + - mkseq: use sh_imaxabs (new macro) instead of abs() for intmax_t + variables + - mkseq: don't allow incr to be converted to -INTMAX_MIN + - mkseq: make sure that strvec_create isn't called with a size argument + greater than INT_MAX, since it only takes an int + + 6/6 + --- +braces.c + - mkseq: try and be smarter about not overallocating elements in + the return array if the increment is not 1 or -1 + + 6/7 + --- +parse.y + - history_delimiting_chars: if the parser says we're in the middle of + a compound assignment (PST_COMPASSIGN), just return a space to avoid + adding a stray semicolon to the history entry. Fixes bug reported + by "Davide Brini" + + 6/8 + --- +bashline.c + - bash_directory_completion_hook: don't attempt spelling correction + on the directory name unless the direxpand option is set and we are + going to replace the directory name with the corrected one in the + readline line. Suggested by Linda Walsh + +lib/sh/shquote.c + - sh_backslash_quote: now takes a third argument: flags. If non-zero, + tildes are not backslash-escaped. Have to handle both printf %q, + where they should be escaped, and filename completion, where they + should not when used as usernames + +externs.h + - sh_backslash_quote: declaration now takes a third argument + +builtins/printf.def + - printf_builtin: call sh_backslash_quote with 1 as third argument + so tildes get escaped + +{bashline,bracecomp}.c + - call sh_backslash_quote with 0 as third argument so tildes are not + escaped in completed words + +doc/bash.1 + - add `coproc' to the list of reserved words. From a report by + Jens Schweikhardt + + 6/10 + ---- +execute_cmd.c + - line_number_for_err_trap: now global, so parse_and_execute can save + and restore it with unwind-protect + +builtins/evalstring.c + - parse_prologue: save and restore line_number_for_err_trap along + with line_number + - restore_lastcom: new function, unwind-protect to restore + the_printed_command_except_trap + - parse_prologue: use restore_lastcom to save and restore the value + of the_printed_command_except_trap around calls to parse_and_execute + (eval/source/.) + + 6/15 + ---- +lib/readline/complete.c + - complete_fncmp: change filename comparison code to understand + multibyte characters, even when doing case-sensitive or case-mapping + comparisons. Fixes problem reported by Nikolay Shirokovskiy + + + 6/20 + ---- +builtins/mapfile.def + - mapfile: move the line count increment and check for having read + the specified number of lines to the end of the loop to avoid + reading an additional line with zgetline. Fixes bug reported by + Dan Douglas + + 6/21 + ---- + +execute_cmd.c + - execute_pipeline: make sure `lastpipe_flag' is initialized to 0 on + all systems, since it's tested later in the function. Fixes bug + reported by John E. Malmberg + + 6/22 + ---- +mailcheck.c + - file_mod_date_changed: return 0 right away if mailstat() does not + return success. Fixes bug with using uninitialized values reported + by szymon.kalasz@uj.edu.pl + +builtins/set.def + - the `monitor' option is not available when the shell is compiled + without job control, since the underlying `m' flag is not available + +nojobs.c + - job_control: now declared as int variable, initialized to 0, never + modified + +jobs.h + - job_control: extern declaration no longer dependent on JOB_CONTROL + +execute_cmd.c + - execute_pipeline: made necessary changes so `lastpipe' shell option + is now available in all shells, even those compiled without + JOB_CONTROL defined + + 6/23 + ---- +lib/glob/glob.c + - glob_filename: check for interrupts before returning if glob_vector + returns NULL or an error. Bug reported by Serge van den Boom + , fix from Andreas Schwab + - call run_pending_traps after each call to QUIT or test of + interrupt_state, like we do in mainline shell code + - glob_vector: don't call QUIT; in `if (lose)' code block; just free + memory, return NULL, and let callers deal with interrupt_state or + other signals and traps + + 6/25 + ---- +lib/readline/input.c + - rl_read_key: restructure the loop that calls the event hook a little, + so that the hook is called only after rl_gather_tyi returns no input, + and any pending input is returned first. This results in better + efficiency for processing pending input without calling the hook + on every input character as bash-4.1 did. From a report from + Max Horn + + 6/26 + ---- +trap.c + - signal_is_pending: return TRUE if SIG argument has been received and + a trap is waiting to execute + +trap.h + - signal_is_pending: extern declaration + +lib/glob/glob.c + - glob_vector: check for pending SIGINT trap each time through the loop, + just like we check for interrupt_state or terminating_signal, and + set `lose = 1' so we clean up after ourselves and interrupt the + operation before running the trap. This may require a change later, + maybe call run_pending_traps and do that if run_pending_traps returns? + +variables.c + - sv_histtimefmt: set history_comment_character to default (`#') if + it's 0 when we're turning on history timestamps. The history code + uses the history comment character to prefix timestamps, and + leaving it at 0 effectively removes them from the history. From a + report to help-bash by Dennis Williamson + + 6/27 + ---- +lib/readline/signals.c + - rl_maybe_restore_sighandler: new function, sets handler for SIG to + HANDLER->sa_handler only if it's not SIG_IGN. Needs to be called + on same signals set using rl_maybe_set_sighandler, which does not + override an existing SIG_IGN handler (SIGALRM is ok since it does + the check inline; doesn't mess with SIGWINCH) + + 6/30 + ---- +variables.h + - additional defines for the new `nameref' variable attribute + (att_nameref): nameref_p, nameref_cell, var_setref + +variables.c + - find_variable_nameref: resolve SHELL_VAR V through chain of namerefs + - find_variable_last_nameref: resolve variable NAME until last in a + chain of possibly more than one nameref starting at shell_variables + - find_global_variable_last_nameref: resolve variable NAME until last + in a chain of possibly more than one nameref starting at + global_variables + - find_nameref_at_context: resolve SHELL_VAR V through chain of namerefs + in a specific variable context (usually a local variable hash table) + - find_variable_nameref_context: resolve SHELL_VAR V through chain of + namerefs following a chain of varible contexts + - find_variable_last_nameref_context: resolve SHELL_VAR V as in + find_variable_last_context, but return the final nameref instead of + what the final nameref resolves to + - find_variable_tempenv, find_variable_notempenv, find_global_variable, + find_shell_variable, find_variable: modified to follow namerefs + - find_global_variable_noref: look up a global variable without following + any namerefs + - find_variable_noref: look up a shell variable without following any + namerefs + - bind_variable_internal: modify to follow a chain of namerefs in the + global variables table; change to handle assignments to a nameref by + following nameref chain + - bind_variable: modify to follow chain of namerefs when binding to a + local variable + - unbind_variable: changes to unset nameref variables (unsets both + nameref and variable it resolves to) + +subst.c + - parameter_brace_expand_word: change to handle expanding nameref whose + value is x[n] + - parameter_brace_expand_indir: change to expand in ksh93-compatible + way if variable to be indirected is nameref and a simple (non-array) + expansion + - param_expand: change to expand $foo where foo is a nameref whose value + is x[n] + +execute_cmd.c + - execute_for_command: changes to implement ksh93 semantics when index + variable is a nameref + +builtins/setattr.def + - show_var_attributes: change to add `n' to flags list if att_nameref + is set + +builtins/set.def + - unset_builtin: changes to error messages to follow nameref variables + +builtins/declare.def + - document new -n option + - declare_internal: new `-n' and `+n' options + - declare_internal: handle declare -n var[=value] and + declare +n var[=value] for existing and non-existant variables. + Enforce restriction that nameref variables cannot be arrays. + Implement semi-peculiar ksh93 semantics for typeset +n ref=value + + 7/5 + --- +variables.c + - unbind_variable: unset whatever a nameref resolves to, leaving the + nameref variable itself alone + - unbind_nameref: new function, unsets a nameref variable, not the + variable it references + +variables.h + - unbind_nameref: extern declaration + +builtins/set.def + - unset_builtin: modify to add -n option, which calls unbind_nameref + leaving unbind_variable for the usual case. This required slight + changes and additions to the test suite + +doc/{bash.1,bashref.texi} + - document namerefs and typeset/declare/local/unset -n + + 7/13 + ---- +lib/sh/casemod.c + - include shmbchar.h for is_basic and supporting pieces + - sh_casemod: use _to_wupper and _to_wlower to convert wide character + case instead of TOUPPER and TOLOWER. Fixes bug reported by + Dennis Williamson , fix from + Andreas Schwab + - cval: short-circuit and return ascii value if is_basic tests true + - sh_casemod: short-circuit and use non-multibyte case modification + and toggling code if is_basic tests true + +lib/readline/signals.c + - _rl_{block,release}_sigint: remove the code that actually blocks and + releases the signals, since we defer signal handling until calls to + RL_CHECK_SIGNALS() + +lib/readline/{callback,readline,util}.c + - if HAVE_POSIX_SIGSETJMP is defined, use sigsetjmp/siglongjmp without + saving and restoring the signal mask instead of setjmp/longjmp + +lib/readline/rltty.c + - prepare_terminal_settings: don't mess with IXOFF setting if + USE_XON_XOFF defined + +doc/{bash.1,bashref.texi} + - add some text to the description of set -e clarifying its effect + on shell functions and shell function execution. Suggested by + Rainer Blome + +bashline.c + - edit_and_execute_command: increment current_command_line_count before + adding partial line to command history (for command-oriented-history + because of rl_newline at beginning of function), then reset it to 0 + before adding the dummy history entry to make sure the dummy entry + doesn't get added to previous incomplete command. Partial fix for + problem reported by Peng Yu + + 7/24 + ---- +configure.in + - interix: define RECYCLES_PIDS. Based on a report from Michael + Haubenwallner + + 7/26 + ---- +jobs.c + - make_child: call bgp_delete on the newly-created pid unconditionally. + Some systems reuse pids before cycling through an entire set of + CHILD_MAX/_SC_CHILD_MAX unique pids. This is no longer dependent + on RECYCLES_PIDS. Based on a report from Michael Haubenwallner + + +support/shobj-conf + - Mac OS X: drop MACOSX_DEPLOYMENT_TARGET=10.3 from the LDFLAGS. We + can finally kill Panther + + 7/28 + ---- +subst.c + - command_substitute: make sure last_made_pid gets reset if make_child + fails + +execute_cmd.c + - execute_command_internal: case cm_simple: decide whether or not to + wait_for a child if already_making_children is non-zero, indicates + that there is an unwaited-for child. More of fix for bug report + from Michael Haubenwallner + +jobs.c + - make_child: call delete_old_job (new_pid) unconditionally, don't + bother to check whether or not pid wrap occurred. Rest of fix for + bug report from Michael Haubenwallner + + + 7/29 + ---- +shell.c + - subshell_exit: new function, exits the shell (via call to sh_exit()) + after calling any defined exit trap + +externs.h + - subshell_exit: new extern declaration + +execute_cmd.c + - execute_command_internal: make sure to call subshell_exit for + {} group commands executed asynchronously (&). Part of fix for + EXIT trap bug reported by Maarten Billemont + +sig.c + - reset_terminating_signals: make sure to set termsigs_initialized back + to 0, so a subsequent call to initialize_terminating_signals works + right. Rest of fix for bug reported by Maarten Billemont + + +{execute_cmd,general,jobs,mailcheck,mksyntax,test}.c +builtins/{cd,fc,pushd,ulimit}.def +lib/malloc/getpagesize.h +lib/sh/{clktck,fpurge,inet_aton,mailstat,oslib,pathcanon,pathphys,spell,strerror}.c + - make inclusion of dependent on HAVE_SYS_PARAM_H + consistently + + 8/6 + --- +lib/readline/histexpand.c + - history_expand_internal: now takes an additional argument saying + whether the history expansion occurs within a quoted string, set to + the open quote character + - history_expand_internal: use new argument instead of checking prev + char and initializing quoted_search_delimiter, pass qc directly to + get_history_event, where it allows a matching quote to terminate a + string defining an event + - history_expand: change single-quote handling code so that if + history_quotes_inhibit_expansion is 0, single quotes are treated + like double quotes + - history_expand: change call to history_expand_internal to pass new + argument of `"' if double-quoted string, `'' if single-quoted string; + this lets history_expand decide what is a quoted string and what + is not + + 8/7 + --- +configure.in + - AC_CANONICAL_BUILD: invoke for later use + +lib/readline/macro.c + - _rl_prev_macro_key: new function, inverse of _rl_next_macro_key: + backs up the index into the current macro by 1 + +lib/readline/rlprivate.h + - _rl_prev_macro_key: extern declaration + + +lib/readline/readline.c + - _rl_dispatch_subseq, _rl_subseq_result: don't call _rl_unget_char + if we're currently reading from a macro; call _rl_prev_macro_key + instead. Fixes bug reported by Clark Wang + + 8/13 + ---- +builtins/evalstring.c + - evalstring(): new function, wrapper around parse_and_execute. + make sure we handle cases where parse_and_execute can call `return' + and short-circuit without cleaning up properly. We call + parse_and_execute_cleanup() then jump to the previous-saved return + location + +builtins/common.h + - extern declaration for evalstring() + +builtins/eval.def + - eval_builtin: make sure we handle `eval " ... return"' in contexts + where `return' is valid by calling evalstring(). Fixes bug with + `eval return' in sourced files reported by Clark Wang + + +trap.c + - run_pending_traps: call evalstring instead of parse_and_execute. + XXX - still needs to handle saving and restoring token state in the + presence of `return'; could use unwind_protects for that + +builtins/mapfile.def + - run_callback: call evalstring instead of parse_and_execute + + 8/15 + ---- +bashline.c + - bash_filename_stat_hook: make sure we don't free local_dirname + before using it to canonicalize any expanded filename. Make sure + it always points to *dirname and only free it if we're replacing + it. + +lib/readline/complete.c + - append_to_match: make sure we call rl_filename_stat_hook with + newly-allocated memory to avoid problems with freeing it twice + + 8/17 + ---- +variables.c,config-top.h + - if ARRAY_EXPORT is defined to 1 when variables.c is compiled, the + code that allows indexed arrays to be exported is enabled and + included + + 8/19 + ---- +shell.c + - call start_debugger from main() only if dollar_vars[1] != 0 (close + enough to a non-interactive shell, since we can be interactive with + -i while running a shell script). Fixes oddity reported by + Techlive Zheng + + 8/20 + ---- +arrayfunc.c + - quote_array_assignment_chars: don't bother quoting if the word has + not been marked as an assignment (W_ASSIGNMENT) + - quote_array_assignment_chars: turn on W_NOGLOB in the word flags + so assignment statements don't undergo globbing. Partial fix for + problems reported by Dan Douglas + + 8/21 + ---- +command.h + - W_NOBRACE: new word flag that means to inhibit brace expansion + +subst.c + - brace_expand_word_list: suppress brace expansion for words with + W_NOBRACE flag + + 8/22 + ---- +builtins/read.def + - read_builtin: don't call dequote_string on what we've read, even if + we saw an escape character, unless (input_string && *input_string). + We may have escaped an IFS whitespace character. Fixes seg fault + reported by + +execute_cmd.c + - execute_command_internal: set the_printed_command_except trap when + about to execute a ( ... ) user subshell. For now, set it only if + ERR is trapped; can relax that later. Fixes bug reported by + Mike Frysinger + + 8/23 + ---- +jobs.c + - remove references to first_pid and pid_wrap, since we're not using + them for anything anymore + + 8/24 + ---- +subst.c + - changes for W_NOBRACE everywhere appropriate: so it can be displayed + for debugging, and passed out of expand_word_internal + +doc/{bash.1,bashref.texi} + - small changes to make it clearer that the = and == operators are + equivalent, and will cause pattern matching when used with [[. + From a question from Michal Soltys + +doc/bashref.texi + - some small formatting changes from Karl Berry + + 8/27 + ---- +lib/readline/doc/{history,rlman,rluserman}.texi + - some small formatting changes from Karl Berry + +arrayfunc.c + - assign_array_element_internal, assign_compound_array_list, + unbind_array_element, array_value_internal: changes to make + assignment statements to negative indices (a[-1]=2) and unsetting + array elements using negative indices (unset 'a[-1]') work. + From suggestions by Dennis Williamson + and Chris F. A. Johnson + +subst.c + - array_length_reference: changes to make length references to array + elements using negative indices (${#a[-1]}) work + + 8/28 + ---- +doc/{bash.1,bashref.texi} + - document new treatment of negative indices to indexed arrays when + assigning, referencing, calculating length, and unsetting + + 8/29 + ---- +shell.c + - show_shell_usage: add -l to list of shell invocation options (short + for --login). From Red Hat bug 852469 + +configure.ac + - renamed from configure.in, as latest autoconf versions want. Patches + Stefano Lattarini + +MANIFEST,Makefile.in,doc/bashref.texi,support/mkconffiles + - configure.in -> configure.ac + + 9/1 + --- + +parse.y + - read_token_word: allow words like {array[ind]} to be valid redirection + words for constructs like {x} + +lib/readline/display.c + - update_line: if the first difference between the old and new lines + is completely before any invisible characters in the prompt, we + should not adjust _rl_last_c_pos, since it's before any invisible + characters. Fixed in two places + - prompt_modechar: return a character indicating the editing mode: + emacs (@), vi command (:), or vi insert (+) + - _rl_reset_prompt: new function, just calls rl_expand_prompt. Will be + inlined, placeholder for more changes + - expand_prompt: if show-mode-in-prompt is enabled, add a character to + the front of the prompt indicating the editing mode, adjusting the + various variables as appropriate to keep track of the number of + visible characters and number of screen positions + +lib/readline/bind.c + - show-mode-in-prompt: new bindable boolean variable, shadowed by + _rl_show_mode_in_prompt variable + - hack_special_boolean_var: call _rl_reset_prompt when toggling or + setting show-mode-in-prompt + +lib/readline/readline.c + - readline_internal_setup: make sure the correct vi mode keymap is set + before expanding the prompt string for the first time + +lib/readline/misc.c + - rl_emacs_editing_mode: make sure to call _rl_reset_prompt if we're + showing the editing mode in the prompt + +lib/readline/rlprivate.h + - _rl_reset_prompt, _rl_show_mode_in_prompt: extern declarations + +lib/readline/vi_mode.c + - rl_vi_insertion_mode: call _rl_reset_prompt + - rl_vi_movement_mode: call _rl_reset_prompt. Finishes changes for + showing mode in prompt string, originally requested by Miroslav + Koskar and most recently by Jordan Michael + Ziegler + +doc/bash.1,lib/readline/doc/{readline.3,rluser.texi} + - document new show-mode-in-prompt variable, off by default + + 9/3 + --- + +jobs.c + - set_childmax: new function, external mechanism for other parts of + the shell to set js.c_childmax, the number of saved exited child + statuses to remember +jobs.h + - set_childmax: extern declaration + +variables.c + - CHILD_MAX: new special variable, with sv_childmax function to + run when it changes. Setting CHILD_MAX to a value greater than + zero but less than some maximum (currently 8192) sets the number of + exited child statuses to remember. set_childmax (jobs.c) ensures + that the number does not drop below the posix-mandated minimum + (CHILD_MAX) + +doc/{bash.1,bashref.texi} + - CHILD_MAX: document new meaning and action when variable is set + + 9/5 + --- +redir.c + - redir_varassign: call stupidly_hack_special_variables after + assigning fd number to specified variable, so we can use constructs + like {BASH_XTRACEFD}>foo. Suggested by Pierre Gaston + + + 9/8 + --- +expr.c + - readtok: invalidate previous contents of `curlval' before freeing + and reallocating tokstr (which, chances are, will get the same + pointer as before and render curlval inconsistent). Fixes other + bug reported by Dan Douglas + + 9/9 + --- +lib/readline/complete.c + - rl_username_completion_function: protect call to setpwent() with + #ifdef (HAVE_GETPWENT)/#endif. Fixes bug reported by + Gerd Hofmann + +lib/readline/display.c + - rl_message: second and subsequent calls to rl_message can result in + local_prompt being overwritten with new values (e.g., from the + successive calls displaying the incremental search string). Need + to free before overwriting if it's not the same as the value saved + in saved_local_prompt. Fixes memory leak reported by + Wouter Vermaelen + +lib/readline/{terminal.c,rlprivate.h} + - move CUSTOM_REDISPLAY_FUNC and CUSTOM_INPUT_FUNC defines from + terminal.c to rlprivate.h so other files can use them + +expr.c + - expr_streval: if noeval is non-zero, just return 0 right away, + short-circuiting evaluation completely. readtok will leave curtok + set correctly without re-entering the evaluator at all. Rest of + fix for bug reported by Dan Douglas + + 9/11 + ---- + +parse.y + - parse_comsub: make sure the `reserved word ok in this context' flag + is preserved after we read `do' followed by whitespace. Fixes bug + reported by Benoit Vaugon + + 9/13 + ---- +configure.ac,config.h.in + - enable-direxpand-default: new configure option, turns the `direxpand' + shell option on by default + +bashline.c + - dircomplete_expand, dircomplete_expand_relpath: initialize to 1 if + DIRCOMPLETE_EXPAND_DEFAULT is defined and non-zero + +doc/bashref.texi + - enable-direxpand-default: document new configure option + + 9/14 + ---- +shell.c + - --protected: make option valid only when wordexp is compiled into + the shell. Fix from Roman Rakus + +configure.ac + - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from + Joachim Schmitz + + 9/16 + ---- +subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c + - minor code cleanups from Joachim Schmitz + +lib/readline/colors.h + - workaround for HP NonStop compiler issue with from + Joachim Schmitz + + 9/17 + ---- +builtins/printf.def + - printf_builtin: handle localtime returning NULL, as can happen when + encountering overflow. Bug report and initial fix from + Eduardo A. Bustamante López + +doc/{bash.1,bashref.texi} + - emphasize that brace expansion using character ranges ({a..c}) acts + as if the C locale were in use. Prompted by message from + Marcel Giannelia + + 9/20 + ---- +lib/sh/wcsnwidth.c + - wcsnwidth: new function, variant of wcwidth, returns the number of + wide characters from a string that will be displayed to not exceed + a specified max column position + + 9/21 + ---- +builtins/help.def + - show_builtin_command_help: break code that displays the short-doc + for each builtin in two columns into a new function: dispcolumn + - wdispcolumn: multibyte-char version of dispcolumn; uses wide + chars and printf "%ls" format. Fixes problem reported by + Nguyá»n Thái Ngá»c Duy + + 9/22 + ---- +execute_cmd.c + - execute_disk_command: before running the command-not-found hook, + call kill_current_pipeline() to make sure we don't add processes + to an existing pipeline or wait for processes erroneously + + 9/23 + ---- +lib/readline/input.c + - rl_input_available_hook: new hook function, called from + _rl_input_available (or _rl_input_queued) to return whether or not + input is available wherever the input source is + +lib/readline/doc/rltech.texi + - rl_input_available_hook: document + + 9/27 + ---- +lib/glob/sm_loop.c: + - GMATCH: after one or more `*', an instance of ?(x) can match zero or + 1 times (unlike ?, which has to match one character). The old code + failed if it didn't match at least once. Fixes `a*?(x)' bug. + - GMATCH: if we hit the end of the search string, but not the end of + the pattern, and the rest of the pattern is something that can + match the NUL at the end of the search string, we should successfully + match. Fixes `a*!(x)' bug reported by + + 10/2 + ---- +command.h + - add c_lock member to coproc structure for future use to tell who is + manipulating it + +execute_cmd.c + - execute_coproc: block SIGCHLD while parent is forking coproc + process and adding pid to sh_coproc struct to avoid race condition + where child is reaped before the pid is assigned and the coproc is + never marked as having died. Fixes race condition identified by + Davide Baldini + - add assignments to c_lock member of struct coproc in various + functions that manipulate it; was used to identify race condition + - coproc_pidchk: don't call coproc_dispose to avoid using malloc and + other functions in a signal handler context + - coproc_dispose: call BLOCK_SIGNAL/UNBLOCK_SIGNAL for SIGCHLD while + manipulating the sh_coproc struct + + 10/6 + ---- +lib/readline/complete.c + - rl_display_match_list: if printing completions horizontally, don't + bother with spacing calculations if limit == 1, which means we are + printing one completion per line no matter what. Fixes bug + reported by David Kaasen + + 10/7 + ---- +builtins/declare.def + - declare_internal: add error checking for nameref attribute and + variable assignments: self-references, attempts to make an array + variable a nameref + +subst.c + - parameter_brace_expand: handle parameter_brace_expand_word returning + &expand_param_fatal or &expand_param_error and return the appropriate + error value + - parameter_brace_expand_word: if a nameref variable's value is not a + valid identifier, return an error + - param_expand: if a nameref variable's value is not a valid identifier, + return an error + +test.c + - unary_operator: add new -R variable, returns true if variable is set + and has the nameref attribute. From ksh93 + +builtins/test.def + - add -R to description of conditional commands for help test + +doc/{bash.1,bashref.texi} + - document new -R unary conditional operator + + 10/13 + ----- +trap.c + - check_signals_and_traps: new function, convenience function for the + rest of the shell to check for pending terminating and interrupt + signals, and to check for and process any pending traps + - any_signals_trapped: new function, returns non-zero if any signals + are trapped and -1 if not + +trap.h + - extern declaration for check_signals_and_traps + +bashline.c + - bashline_reset: make sure we reset the event hook + - bash_event_hook: call check_signals_and_traps instead of just + checking for terminating signals so we can run pending traps and + react to interrupts, and reset the event hook when we're done + + + 10/14 + ----- +trap.c + - trap_handler: if executing in a readline signal handler context, + call bashline_set_event_hook to install bash_event_hook to process + the signal (if bash cares about it) + +sig.c + - sigint_sighandler: call bashline_set_event_hook to set the event + hook if we're executing in a readline signal handler context + +lib/readline/input.c + - rl_getc: call RL_CHECK_SIGNALS if read returns -1/EINTR and the caught + signal is SIGINT or SIGQUIT rather than waiting until the next time + around the loop + - rl_getc: call rl_event_hook after calling RL_CHECK_SIGNALS to allow + an application signal handler to set the event hook in its own + signal handler (e.g., like bash trap_handler or sigint_sighandler) + + +parse.y + - yy_readline_get: don't set interrupt_immediately before we call + readline(). Inspired by report from lanshun zhou + + +input.c + - getc_with_restart: add call to run_pending_traps after call to + CHECK_TERMSIG + +lib/sh/zread.c + - zread: call check_signals_and_traps if read() returns -1/EINTR + instead of just ignoring the EINTR and deferring handling any + signal that generated it + +builtins/mapfile.def + - mapfile: don't set interrupt_immediately before calling zgetline() + (which uses zread internally) + +builtins/read.def + - read_builtin: don't set interrupt_immediately before calling zread + (moved code around so that it was only being set right around calls + to zread to avoid signal handler conflicts). Inspired by report + from lanshun zhou + - edit_line: don't set interrupt_immediately around call to readline() + - include shmbutil.h + - read_builtin: don't call read_mbchar unless is_basic(c) returns + false for the character we just read + + 10/15 + ----- +sig.c + - throw_to_top_level: if interrupt_state is non-zero, make sure that + last_command_exit_value reflects 128+SIGINT if it's not already + greater than 128 + + 10/20 + ----- +builtins/wait.def + - WAIT_RETURN: set wait_signal_received back to 0 for the potential + next call to wait + +quit.h + - CHECK_WAIT_INTR: macro to check whether trap_handler handled a + signal and set wait_signal_received; longjmp to wait_intr_buf in + that case + +jobs.c + - wait_for, waitchld: call CHECK_WAIT_INTR at the same places we call + CHECK_TERMSIG to check for terminating signals + - wait_sigint_handler: don't longjmp out of the wait builtin unless + interrupt_immediately is set; otherwise just SIGRETURN from the + handler + - wait_sigint_handler: if interrupt_immediately not set, but we are + executing in the wait builtin and SIGINT is not trapped, treat it + as a `normally received' SIGINT: restore the signal handler and + send SIGINT to ourselves + - waitchld: when in posix mode and running SIGCHLD traps, don't longjmp + to wait_intr_buf (and let wait be interrupted) if we're running from + a signal handler. Wait for CHECK_WAIT_INTR to do the longjmp. + run_pending_traps will run the SIGCHLD trap later + +nojobs.c + - reap_zombie_children, wait_for_single_pid, wait_for: call + CHECK_WAIT_INTR where we call CHECK_TERMSIG + - wait_sigint_handler: don't longjmp out of the wait builtin unless + interrupt_immediately is set; otherwise just SIGRETURN from the + handler + +trap.c + - trap_handler: make sure wait_signal_received is set if the wait + builtin is executing, and only longjmp if interrupt_immediately is + set. This whole set of fixes was prompted by report from + lanshun zhou + + 10/24 + ----- +lib/glob/glob.c + - glob_filename: only check directory_name for globbing chars if + it's of non-zero length + +lib/sh/strchrnul.c + - new simpler implementation + +subst.c + - command_substitute: call set_shellopts after turning off errexit + in subshells so it's reflected in $SHELLOPTS + + 11/7 + ---- +builtins/evalstring.c + - parse_and_execute: treat ERREXIT case like reader_loop does: set + variable_context to 0 before longjmping back to top_level. Don't + run the unwind-protect context to avoid side effects from popping + function contexts. Part of fix for problem reported by Nikolai + Kondrashov + +execute_cmd.c + - execute_simple_command: call unlink_fifo_list only if this is the + last element of a pipeline (or not in a pipeline), rather than for + every child. Fixes difference in behavior between /dev/fd and + FIFOs reported by Zev Weiss + - execute_null_command: do the same thing in the parent branch after + make_child + + 11/14 + ----- +subst.c + - parameter_brace_expand: a variable is null if it's special ($@, $*), + the expansion occurs within double quotes, and the expansion turns + into a quoted null. Fixes debian bug 692447 reported by + Matrosov Dmitriy + +jobs.c + - run_sigchld_trap: make sure `running_trap' sentinel is set + appropriately + - waitchld: only run the sigchld trap if we're not in a signal + handler, not running a trap, and executing the wait builtin. + Otherwise, queue for later handling. We still run one instance + of the trap handler per exited child. Bulk of fix for bug + reported by Elliott Forney + +trap.c + - queue_sigchld_trap: set catch_flag so run_pending_traps notices, + and set trapped_signal_received for completeness. Rest of fix + for bug reported by Elliott Forney + +lib/malloc/malloc.c + - block_signals: renamed to _malloc_block_signals, made public + - unblock_signals: renamed to _malloc_unblock_signals, made public + +lib/malloc/imalloc.h + - extern declarations for _malloc_{un,}block_signals + +lib/malloc/table.c + - mregister_alloc, mregister_free: block signals around table + manipulation + + 11/15 + ----- +trap.c + - run_pending_traps: set SIG_INPROGRESS flag around calls to + run_sigchld_handler so other parts of the shell know that the + SIGCHLD trap handler is executing + - run_pending_traps: if we get a situation where we are looking at + running a SIGCHLD trap but the trap string is IMPOSSIBLE_TRAP_HANDLER + and the SIG_INPROGRESS flag is set, just skip it. This is possible + if run_pending_traps is called from a SIGCHLD trap handler run by + run_sigchld_trap + +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - corrected description of the effect of `set history-size 0'. Report + from Vesa-Matti J Kari + +include/stdc.h + - CPP_STRING: new define, replaces __STRING + +lib/malloc/{malloc.c,imalloc.h} + - replace __STRING with CPP_STRING + + 11/16 + ----- +lib/readline/bind.c + - sv_histsize: if argument evaluates to a value < 0, unstifle the + history + + 11/22 + ----- +redir.c + - do_redirection_internal: if we have REDIR_VARASSIGN set in the + redirection flags and we set up `redirector' using fcntl or dup2, + don't add a redirect to make sure it stays open. Let the + script programmer manage the file handle. Fixes bug reported by + Sam Liddicott + + 11/24 + ----- +jobs.c + - wait_for_any_job: new function, waits for an unspecified background + job to exit and returns its exit status. Returns -1 on no background + jobs or no children or other errors. Calls wait_for with new + sentinel value ANY_PID + - wait_for: changes to handle argument of ANY_PID: don't look up or + try to modify the child struct, only go through the wait loop once. + Return -1 if waitpid returns no children + +jobs.h + - ANY_PID: new define + +builtins/wait.def + - new option: -n. Means to wait for the next job and return its exit + status. Returns 127 if there are no background jobs (or no + children). Feature most recently requested by Elliott Forney + + +doc/{bash.1,bashref.texi} + - document new `wait -n' option + +execute_cmd.c + - execute_command_internal: save make_command_string () result in a + temp variable before calling savestring() on it; avoids evaluating + make_command_string() result twice. Fix from John E. Malmberg + + + 11/28 + ----- + +builtins/declare.def + - declare_internal: if an array variable is declared using `declare -a' + or `declare -A', but not assigned a value, set the `invisible' + attribute so the variable does not show up as set. Fix for bug + about variable initialization reported by Tim Friske + +builtins/{mapfile,read}.def + - after calling find_or_make_array_variable, make sure the invisible + flag is turned off, in case the variable was declared previously + using `declare -a' or `declare -A'. Side effect of above change to + declare_internal + +subst.c + - shell_expand_word_list: handle the W_ASSNGLOBAL flag and put -g into + the list of options passed to make_internal_declare as appropriate. + Fix for bug reported by Tim Friske + + 11/30 + ----- +test.c + - unary_op: make sure -v and -n check that the variable is not marked + as invisible before calling var_isset. Fix for bug reported by Tim + Friske + + 12/2 + ---- +subst.c + - process_substitute: turn off the `expanding_redir' flag, which + controls whether or not variables.c:find_variable_internal uses the + temporary environment to find variables. We want to use the + temp environment, since we don't have to worry about order of + evaluation in a subshell. Fixes bug reported by Andrey Borzenkov + + + 12/4 + ---- +lib/glob/glob.c + - glob_filename: changes to avoid null filenames and multiple entries + returned for patterns like **/** (globstar enabled). Fixes bug + reported by Ulf Magnusson + + 12/10 + ----- +lib/glob/glob.c + - glob_filename: finish up a series of changes to make globstar-style + globbing more efficient, avoid more duplicate filenames, and be more + compatible with other shells that implement it + o collapse a sequence of **/**/** to one ** + o note when the directory name is all ** or ends in ** so we + can treat it specially when the filename is ** + All inspired by report from Andrey Borzenkov + +lib/sh/zread.c + - zreadn: new function, like zread, but takes an additional argument + saying how many bytes to read into the local buffer. Can be used to + implement `read -N' without so many one-byte calls to zreadc. Code + from Mike Frysinger + + 12/12 + ----- +lib/glob/sm_loop.c + - PATSCAN (glob_patscan): if passed string already points to end of + pattern, return NULL immediately. Fixes problem with + extglob_skipname reported by Raphaël Droz + + 12/13 + ----- +execute_cmd.c + - execute_coproc: handle the command's exit status being inverted + (an oversight). Fixes bug reported by DJ Mills + and Andreas Schwab + + 12/14 + ----- +lib/readline/readline.c + - bind_arrow_keys_internal: add MINGW key bindings for Home, End, + Delete, and Insert keys. Fix from Pierre Muller + + +builtins/printf.def + - printf_builtin: '%()T' conversion: if there is no argument supplied, + behave as if -1 had been supplied (current time). ksh93-like feature + suggested by Clark Wang + +doc/{bash.1,bashref.texi} + - document new printf %()T default argument behavior + + 12/15 + ----- +lib/readline/display.c + - displaying_prompt_first_line: new variable, indicates whether or + not the first line of output is displaying the prompt. Always true + in normal mode, sometimes false in horizontal scrolling mode + - rl_redisplay: set displaying_prompt_first_line to true unless we + are in horizontal mode; set to false in horizontal mode if the left + margin of the displayed line is greater than the end of the prompt + string + - rl_redisplay: when in horizontal scroll mode, don't adjust + _rl_last_c_pos by the wrap offset unless the line is displaying + a prompt containing invisible chars + - update line: don't adjust _rl_last_c_pos by the wrap offset unless + the line is displaying a prompt containing invisible chars + - update_line: if shrinking the line by reducing the number of + displayed characters, but we have already moved the cursor to the + beginning of the line where the first difference starts, don't + try to delete characters + +builtins/read.def + - unbuffered_read: set to 2 if invoked as `read -N' + - if unbuffered_read is set to 2, compute the number of chars we + need to read and read that many with zreadn. Posix mode still + uses zreadintr. Code from Mike Frysinger + +doc/{bash.1,bashref.texi} + - read: make it clear that if read times out, it saves any input + read to that point into the variable arguments. Report from + Fiedler Roman + +subst.c + - command_substitute: change direct assignment of exit_immediately_on_error + to use change_flag ('e', FLAG_OFF) instead + +flags.c + - use errexit_flag as the variable modified by changes to the -e + option, reflect those changes to exit_immediately_on_error + +execute_cmd.c + - execute_builtin: new global variable, builtin_ignoring_errexit, set + to 0 by default and set to 1 if eval/source/command executing in a + context where -e should be ignored + - execute_builtin: set exit_immediately_on_error to errextit_flag + after executing eval/source/command in a context where -e should + be ignored + +flags.c + - if builtin_ignoring_errexit is set, changes to errexit_flag are + not reflected in the setting of exit_immediately_on_error. Fixes + bug reported by Robert Schiele + + 12/23 + ----- +include/posixjmp.h + - setjmp_nosigs: new define, call setjmp in such a way that it will + not manipulate the signal mask + +{expr,test,trap}.c + - setjmp_nosigs: call instead of setjmp; don't need to manipulate + signal mask + +builtins/read.def + - read_builtin: setjmp_nosigs: call instead of setjmp; don't need + to manipulate signal mask + +builtins/evalstring.c: + - parse_and_execute: setjmp_nosigs: call instead of setjmp; don't need + to manipulate signal mask + - parse_string: setjmp_nosigs: call instead of setjmp; don't need + to manipulate signal mask + - parse_and_execute: save and restore the signal mask if we get a + longjmp that doesn't cause us to return or exit (case DISCARD) + + 12/24 + ----- +general.c + - bash_tilde_expand: only set interrupt_immediately if there are no + signals trapped; we want to jump to top level if interrupted but + not run any trap commands + + 12/25 + ----- +jobs.c + - run_sigchld_trap: no longer set interrupt_immediately before calling + parse_and_execute, even if this is no longer run in a signal handler + context + +input.c + - getc_with_restart: add call to QUIT instead of CHECK_TERMSIG + +parse.y + - yy_stream_get: now that getc_with_restart calls QUIT, don't need to + set interrupt_immediately (already had call to run_pending_traps) + +execute_cmd.c + - execute_subshell_builtin_or_function,execute_function,execute_in_subshell: + setjmp_nosigs: call instead of setjmp when saving return_catch; don't + need to manipulate signal mask + - execute_subshell_builtin_or_function,execute_in_subshell: + setjmp_nosigs: call instead of setjmp where appropriate when saving + top_level; don't need to manipulate signal mask if we're going to + exit right away + +subst.c + - command_substitute: setjmp_nosigs: call instead of setjmp when saving + return_catch; don't need to manipulate signal mask + - command_substitute: setjmp_nosigs: call instead of setjmp where + appropriate when saving top_level; don't need to manipulate signal + mask if we're going to exit right away + +trap.c + - run_exit_trap: setjmp_nosigs: call instead of setjmp when saving + return_catch; don't need to manipulate signal mask + - run_exit_trap: setjmp_nosigs: call instead of setjmp where + appropriate when saving top_level; don't need to manipulate signal + mask if we're going to exit right away + - _run_trap_internal: setjmp_nosigs: call instead of setjmp when saving + return_catch; don't need to manipulate signal mask + +builtins/evalfile.c + - _evalfile: setjmp_nosigs: call instead of setjmp when saving + return_catch; don't need to manipulate signal mask + +builtins/evalstring.c + - evalstring: setjmp_nosigs: call instead of setjmp when saving + return_catch; don't need to manipulate signal mask + +shell.c + - main: setjmp_nosigs: call instead of setjmp where appropriate when + saving top_level; don't need to manipulate signal mask if we're + going to exit right away + - run_one_command: setjmp_nosigs: call instead of setjmp where + appropriate when saving top_level; don't need to manipulate signal + mask if we're going to exit right away + - run_wordexp: setjmp_nosigs: call instead of setjmp where + appropriate when saving top_level; don't need to manipulate signal + mask if we're going to exit right away + +eval.c + - reader_loop: save and restore the signal mask if we get a longjmp + that doesn't cause us to return or exit (case DISCARD) + + 12/26 + ----- +parse.y + - shell_input_line_{index,size,len}: now of type size_t; in some cases + the unsigned property makes a difference + - STRING_SAVER: saved_line_{size,index} now of type size_t + - shell_getc: don't allow shell_input_line to grow larger than SIZE_MAX; + lines longer than that are truncated until read sees a newline; + addresses theoretical buffer overflow described by Paul Eggert + + - set_line_mbstate: size_t changes like shell_getc + - shell_getc: if shell_input_line is larger than 32K, free it and + start over to avoid large memory allocations sticking around + +variables.c + - bind_global_variable: new function, binds value to a variable in + the global shell_variables table + +variables.h + - bind_global_variable: new extern declaration + +builtins/declare.def + - declare_internal: if -g given with name=value, but variable is not + found in the global variable table, make sure to call + bind_global_variable so the variable is created and modified at + global scope. Fixes a bug where declare -g x=y could modify `x' + at a previous function scope + +command.h + - W_ASSIGNARRAY: new word flag, compound indexed array assignment + +subst.h + - ASS_MKGLOBAL: new assignment flag, forcing global assignment even in + a function context, used by declare -g + +execute_cmd.c + - fix_assignment_words: set W_ASSIGNARRAY flag if -a option given to + declaration builtin + +subst.c + - do_assignment_internal: explicitly handle case where we are + executing in a function and we want to create a global array or + assoc variable + - shell_expand_word_list: call make_internal_declare if -a option + given to declaration builtin (W_ASSIGNARRAY); handle -g option with + it (W_ASSNGLOBAL). Fixes inconsistency noticed by Vicente Couce + Diaz , where declare -ag foo=(bar) could modify + array variable foo at previous function scope, not global scope + + 12/27 + ----- +bashline.c + - Minix needs the third argument to tputs to be a void funtion taking + an int argument, not an int-returning function. Fix from + John E. Malmberg as part of VMS bash port + + 12/29 + ----- +configure.ac,version.c,patchlevel.h + - bash-4.3-devel: new version, new shell compatibility level (43) + +subst.c + - parameter_brace_patsub: put the bash-4.2 code back in from the + change of 3/3 that runs the replacement string through quote + removal, make it dependent on shell_compatibility_level <= 42 + +builtins/shopt.def + - compat42: new shopt option + - set_compatibility_level: change logic to set and unset various + compat variables and shell_compatibility_level + +COMPAT + - new documentation for bash-4.3 compatibility changes + +doc/{bash.1,bashref.texi} + - compat42: document new shopt option + +builtins/shopt.def + - set_compatibility_opts: new function, sets the various shopt + compat variables based on the value of shell_compatibility_level + +builtins/common.h + - set_compatibility_opts: new extern declaration + +variables.c + - BASH_COMPAT: new special variable; sets the shell compatibility + level. Accepts values in decimal (4.2) or integer (42) form; + Unsetting variable, setting it to empty string, or setting it to + out-of-range value sets the shell's compatibility level to the + default for the current version. Valid values are 3.1/31 through + the current version + - sv_shcompat: new function implementing logic for BASH_COMPAT + +variables.h + - sv_shcompat: new extern declaration + +doc/{bash.1,bashref.texi} + - BASH_COMPAT: description of new variable + +lib/readline/complete.c + - _rl_colored_stats: default back to 0 for 4.3 release branch + + 1/5/2013 + -------- +quit.h + - remove spurious call to itrace in CHECK_WAIT_INTR + +bashline.c + - bash_event_hook: if we're going to jump to top_level, make sure we + clean up after readline() by calling rl_cleanup_after_signal(). + Fixes bug reported against devel branch by Raphaël Droz + + - bash_event_hook: reset the event hook before checking for signals + or traps in case we longjmp + +doc/{bash.1,bashref.texi} + - small additions to the set -e section to make it more clear that + contexts where -e is ignored extend to compound commands as well + as shell functions + +lib/readline/readline.h + - rl_signal_event_hook: new extern declaration + +lib/readline/input.c + - rl_signal_event_hook: new variable, hook function to call when a + function (currently just read(2)) is interrupted by a signal and + not restarted + - rl_getc: call rl_signal_event_hook instead of rl_event_hook + +lib/readline/doc/rltech.texi + - rl_signal_event_hook: document new function + +bashline.c + - changes to set rl_signal_event_hook instead of rl_event_hook + +lib/readline/readline.h + - change readline version numbers to 6.3 + + 1/6 + --- +doc/{bash.1,bashref.texi} + - a couple of changes to the descriptions of the ERR trap and its + effects based on a message from Rob Nagler + + 1/9 + --- +expr.c + - expassign: invalidate curlval before freeing and NULLing tokstr to + avoid aliasing issues. Fixes bug reported by Eduardo A. Bustamante + López and Dan Douglas + +braces.c + - array_concat: don't be so aggressive in trying to short-circuit. We + can only short-circuit if we have a single-element array where the + element is an empty string (array[0] == "" array[1] = 0x0). Existing + practice requires us to replicate arrays and prefix or append empty + strings. Fixes bug reported by Eduardo A. Bustamante López + + + 1/11 + ---- +execute_cmd.c + - execute_builtin: since mapfile uses evalstring() to run its callbacks + internally, just like eval, so it needs to handle the case where the + temp environment given to mapfile persists throughout the entire + set of callback commands. This might be a problem with trap also, but + trap isn't run in the same way. Fixes bug reported by Dan Douglas + + + 1/13 + ---- +redir.c + - redirection_error: before expanding the redirection word (if + expandable_redirection_filename returns true), disable command + substitution during expansion. Fixes bug reported by Dan Douglas + + +subst.c + - expand_word_internal: case '\\': if the next character is an IFS + character, and the expansion occurs within double quotes, and the + character is not one for which backslash retains its meaning, add + the (escaped) '\' and the (escaped) character. Fixes bug reported + by Dan Douglas + + 1/15 + ---- +builtins/cd.def + - cd_builtin: make sure call to internal_getopt handles -e option. + Fixes bug reported by + + 1/17 + ---- +subst.c + - expand_word_list_internal: make sure tempenv_assign_error is + initialized to 0 + +execute_cmd.c + - execute_simple_command: make sure tempenv_assign_error is reset to 0 + after it's tested to see if an error should force the shell to exit. + Fixes problem where a the failure of a tempenv assignment preceding + a non-special builtin `sticks' and causes the next special builtin + to exit the shell. From a discussion on bug-bash started by + douxin + + 1/20 + ---- +subst.c + - parameter_brace_expand_rhs: call stupidly_hack_special_variables + after assigning with ${param[:]=word} even if IFS is changing. + Suggested by Dan Douglas [TENTATIVE, needs work + on IFS side effects] + +command.h + - W_GLOBEXP (which was unused) is now W_SPLITSPACE (which isn't used + yet) + +{execute_cmd,subst,variables}.c + - removed all code that mentioned W_GLOBEXP + - removed mention of gnu_argv_flags and code that set it + + 1/22 + ---- +subst.c + - param_expand: set W_SPLITSPACE if we expand (unquoted) $* and + IFS is unset or null so we can be sure to split this on spaces + no matter what happens with IFS later + - expand_word_internal: note that param_expand returns W_SPLITSPACE + in the returned word flags and keep track of that state with + `split_on_spaces' + + 1/23 + ---- +subst.c + - expand_word_internal: if split_on_spaces is non-zero, make sure + we split `istring' on spaces and return the resultant word. The + previous expansions should have quoted spaces in the positional + parameters where necessary. Suggested by Dan Douglas + + +execute_cmd.c + - execute_command_internal: make sure any subshell forked to run a + group command or user subshell at the end of a pipeline runs any + EXIT trap it sets. Fixes debian bash bug 698411 + http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=698411 + +subst.c + - shell_expand_word_list: fix code that creates args for and calls + make_internal_declare to avoid calling it twice (missing `else' + in 12/26 change) + - do_assignment_internal: fix code from 12/26 change to fix problem + where an existing assoc variable could be converted to an array + without checking `mkassoc' + + 1/24 + ---- +builtins/evalfile.c + - _evalfile: add missing `close (fd)' calls before returning to + avoid fd leaks. Bug and fix from Roman Rakus + + 1/25 + ---- +builtins/read.def + - read_builtin: don't try to play tricks with the top of the unwind- + protect stack after read gets a SIGALRM; save input_string to new + memory, run the stack, then restore input_string and assign the + variables. Part of fix for bug reported by konsolebox + ; the rest of the fix is with the changes in + trap and signal handling and doing away with interrupt_immediately + + 1/26 + ---- +redir.c + - redirection_expand, write_here_string, write_here_document: before + calling any of the word expansion functions, after setting + expanding_redir to 1 (which bypasses the temp environment in the + variable lookup functions), call sv_ifs to reset the cached IFS- + related variables set by subst.c:setifs(). This ensures that + redirections will not get any IFS values that are set in the + temporary environment, as Posix specifies. Then, after the word + expansions, after resetting expanding_redir to 0, call sv_ifs + again to make sure the cached IFS values are set from any + assignments in the temporary environment. We force executing_builtin + to 1 to `fool' the variable lookup functions into using any temp + environment, then reset it to its old value after sv_ifs returns. + This is what allows read() to use the (cached) IFS variables set + in the temp environment. Fixes inconsistency reported by Dan Douglas + + + 1/29 + ---- +lib/readline/display.c + - update_line: fix off-by-one error when updating vis_lbreaks array + in a multibyte locale that occurs when moving multibyte chars from + one line down to another. Bug report and fix from Egmont + Koblinger + + 1/30 + ---- +configure.ac + - changed version to 4.3-alpha + +redir.c + - redir_open: handle open returning -1/EINTR, which seems to happen + a lot with FIFOs and SIGCHLD, and call QUIT to handle other + signals that can interrupt open(2). Bug report and initial fix + from Mike Frysinger + + 1/31 + ---- +subst.c + - parameter_brace_expand: make sure to propagate the PF_ASSIGNRHS flag + to parameter_brace_expand_word + - parameter_brace_expand_word: make sure that if the PF_ASSIGNRHS flag + is set and we are expanding ${a[@]} or ${a[*]} we set quoted to + include Q_DOUBLE_QUOTES before calling array_value_internal, mirroring + what we do for $@ and $*. Fixes inconsistency reported by Dan + Douglas + +configure.ac + - use AC_CHECK_TOOL instead of AC_CHECK_PROG to check for ar, since it + will find $host-prefixed versions of utilities. Report and fix from + Mike Frysinger + +builtins/setattr.def + - set_var_attribute: check whether bind_variable (called when the + variable whose attributes are being modified is found in the temp + environment) just modified a read-only global variable, and don't + bother marking the temporary variable for propagation if so. The + propagation is superfluous and will result in a strange error + message + + 2/2 + --- +variables.c + - initialize_shell_variables: don't try to import function definitions + with invalid names from the environment if already in posix mode, + but create them as (invisible) exported variables so they pass + through the environment. Print an error message so user knows + what's wrong. Fixes bug reported by Tomas Trnka + + 2/9 + --- + +builtins/read.def + - sigalrm_seen, alrmbuf: now global so the rest of the shell (trap.c) + can use them + - sigalrm: just sets flag, no longer longjmps to alrmbuf; problem was + longjmp without manipulating signal mask, leaving SIGALRM blocked + +quit.h + - move CHECK_ALRM macro here from builtins/read.def so trap.c: + check_signals() can call it + +trap.c + - check_signals: add call to CHECK_ALRM before QUIT + - check_signals_and_traps: call check_signals() instead of including + CHECK_ALRM and QUIT inline. Integrating check for read builtin's + SIGALRM (where zread call to check_signals_and_traps can see it) + fixes problem reported by Mike Frysinger + + 2/12 + ---- +lib/glob/xmbsrtowcs.c + - xdupmbstowcs2: fixed but where end of string was not handled + correctly, causing loop to go past end of string in a bunch of cases. + Fixes bug reported by "Dashing" + + + 2/13 + ---- +builtins/pushd.def + - popd_builtin: treat any argument that isn't -n or of the form + [-+][[:digit:]]* as an error. Fixes problem reported by Bruce + Korb + + 2/14 + ---- +configure.ac + - add check for sig_atomic_t; already a placeholder for it in + config.h.in + + 2/15 + ---- +subst.c + - do_compound_assignment: don't call assign_compound_array_list with + a NULL variable in case make_local_xxx_variable returns NULL + (it will if you try to shadow a readonly or noassign variable). + Fixes bug reported by Richard Tollerton + + 2/16 + ---- +variables.c + - make_local_variable: print error messager if an attempt is made to + create a local variable shadowing a `noassign' variable. Previously + we just silently refused to do it + +trap.[ch] + - get_original_signal: now global so rest of the shell can use it + +sig.c + - initialize_shell_signals: install a signal handler for SIGTERM + that does nothing except set a sigterm_received flag instead of + ignoring it with SIG_IGN, as long as SIGTERM is not ignored when + the shell is started. Use get_original_signal early to get the + original handler, since we will do that later anyway + - set_signal_handler: if installing sigterm_sighandler as the SIGTERM + handler, make sure to add SA_RESTART flag to make it as close to + SIG_IGN as possible + +sig.h + - sigterm_sighandler: new extern declaration + +quit.h + - RESET_SIGTERM: set sigterm_receved to 0 + - CHECK_SIGTERM: check sigterm_received; if it's non-zero, treat it + as a fatal signal and call termsig_handler to exit the shell + +jobs.c + - make_child: call RESET_SIGTERM just before fork() so we can detect + if the child process received a SIGTERM before it's able to change + the signal handler back to what it was when the shell started + (presumably SIG_DFL). Only has effect if the shell installed + sigterm_sighandler for SIGTERM, interactive shells that were not + started with SIG_IGN as the SIGTERM handler + - make_child: call RESET_SIGTERM in the parent after fork() so the + rest of the shell won't react to it + +execute_cmd.c + - execute_simple_command: call CHECK_SIGTERM after make_child in child + to catch SIGTERM received after fork() and before restoring old + signal handlers + - execute_disk_command: call CHECK_SIGTERM after make_child in child + process after restoring old signal handlers and again just before + calling shell_execve. Fixes race condition observed by + Padraig Brady when testing with his `timeout' + program + +lib/readline/display.c + - open_some_spaces: new function, subset of insert_some_chars that just + opens up a specified number of spaces to be overwritten + - insert_some_spaces: now just calls to open_some_spaces followed by + _rl_output_some_chars + - update_line: use col_temp instead of recalculating it using + _rl_col_width in the case where we use more columns with fewer bytes + - update_line: use open_some_spaces and then output the right number + of chars instead of trying to print new characters then overwrite + existing characters in two separate calls. This includes removing + some dodgy code and making things simpler. Fix from Egmont + Koblinger + - use new variable `bytes_to_insert' instead of overloading temp in + some code blocks (nls - nfd, bytes that comprise the characters + different in the new line from the old) + + 2/18 + ---- +redir.c + - do_redirection_internal: add undoable redirection for the implicit + close performed by the <&n- and >&n- redirections. Fixes bug + reported by Stephane Chazelas + + 2/19 + ---- +sig.c + - termsig_handler: an interactive shell killed by SIGHUP and keeping + command history will try to save the shell history before exiting. + This is an attempt to preserve the save-history-when-the-terminal- + window-is-closed behavior + + 2/21 + ---- +braces.c + - brace_expand: if a sequence expansion fails (e.g. because the + integers overflow), treat that expansion as a simple string, including + the braces, and try to process any remainder of the string. The + remainder may include brace expansions. Derived from SuSE bug + 804551 example (https://bugzilla.novell.com/show_bug.cgi?id=804551) + + 2/23 + ---- +{quit,sig}.h,sig.c + - sigterm_received declaration now in sig.h; type is sig_atomic_t + - sigwinch_received type now sig_atomic_t + - sig.h includes bashtypes.h and if SIG_DFL not defined + (same logic as trap.h) to pick up sig_atomic_t + +unwind_prot.c + - include sig.h before quit.h (reverse order) + + 2/27 + ---- +builtins/shopt.def + - reset_shopt_options: make sure check_window_size is reset to the + default from config.h, not unconditionally to 0 + +jobs.[ch] + - last_made_pid, last_asynchronous_pid: now volatile. Change from SuSE + +jobs.c + - wait_for: if we're using sigaction to install a handler for SIGCHLD, + make sure we specify SA_RESTART + +lib/{tilde,readline}/shell.c + - get_home_dir: instead of looking in the password file every time, + look once and cache the result + +sig.[ch] + - sigwinch_received, sigterm_received: now `volatile' qualified + +sig.c,quit.h + - interrupt_state,terminating_signal: now sig_atomic_t + + 3/1 + --- +MANIFEST,examples/* + - removed around 120 files without FSF copyrights; requested by + Karl Berry in early January + + 3/2 + --- +lib/malloc/malloc.c + - morecore: only check whether SIGCHLD is trapped if SIGCHLD is defined + +doc/bashref.texi + - Fixed most of the examples in the GNU Parallel section to use better + shell idioms following complaints on bug-bash; added a couple of + examples and smoothed out the text + +quit.h + - include "sig.h" for sig_atomic_t + +lib/readline/display.c + - update_line: when inserting one or more characters at the end of + the display line in a non-multibyte environment, just write from the + first difference to the end of the line and return. We don't have + to adjust _rl_last_c_pos. This is needed to adjust from the old + two-part copy to a single call to _rl_output_some_chars (change of + 2/16) + + 3/4 + --- +Makefile.in,doc/Makefile.in + - PACKAGE_TARNAME, docdir: new variables substituted by autoconf + - OTHER_DOCS,OTHER_INSTALLED_DOCS: new variables with auxiliary + documentation files to be installed into $(docdir) + - install: add new rule to install $(OTHER_DOCS) + - uninstall: add new rule to uninstall $(docdir)/$(OTHER_INSTALLED_DOCS) + +doc/bash.1 + - add URL to `POSIX' file in `SEE ALSO' section; put pointer to that + section in --posix and set -o posix descriptions + +examples/ + - removed around 110 examples at the request of the FSF due to copyright + issues + + 3/5 + --- +builtins/setattr.def + - readonly: modified help text slightly to make it clearer that + functions aren't changed or displayed unless the -f option is given. + Report from + + 3/9 + --- +include/typemax.h + - SIZE_MAX: define to 65535 (Posix minimum maximum) if not defined + +parse.y + - include "typemax.h" for possible SIZE_MAX definition, make sure we + include it after shell.h + +{braces,expr}.c + - include "typemax.h" for possible INTMAX_MIN and INTMAX_MAX definitions + + 3/10 + ---- +bashline.c + - bash_default_completion: make sure completion type of `!' (same as + TAB but with show-all-if-ambiguous set) and glob-word-completion + sets rl_filename_completion_desired to 0 so extra backslashes don't + get inserted by `quoting' the completion. We can't kill all the + matches because show-all-if-ambiguous needs them. Bug report from + Marcel (Felix) Giannelia + +[bash-4.3-alpha frozen] + + 3/14 + ---- +general.c + - trim_pathname: use memmove instead of memcpy since the source and + destination pathnames may overlap. Report and fix from Matthew + Riley + + 3/18 + ---- +configure.ac + - socklen_t is defined as `unsigned int' if configure can't find it + + 3/20 + ---- +lib/readline/complete.c + - S_ISVTX: since it's not defined on all platforms (Minix), make sure + its use is protected with #ifdef + + 3/21 + ---- +doc/{bash.1,bashref.texi} + - Added mention of ${!name[@]} and ${!name[*]} expansions to get all + indices of an array. Suggested by Jonathan Leffler + + + 3/24 + ---- +subst.h + - SD_IGNOREQUOTE: new define for skip_to_delim; if set, means that + single quotes (for now) will be treated as ordinary characters + +subst.c + - skip_to_delim: handle SD_IGNOREQUOTE. no callers use it for now + + 3/25 + ---- +support/config.{guess,sub} + - updated to versions from autoconf-2.69 + + 3/31 + ---- +lib/sh/shquote.c + - sh_single_quote: short-circuit quoting a single "'" instead of + creating a long string with empty single-quoted strings + +parser.h + - DOLBRACE_QUOTE2: new define, like DOLBRACE_QUOTE, but need to single- + quote results of $'...' expansion because quote removal will be + done later. Right now this is only done for ${word/pat/rep} + +parse.y + - parse_matched_pair: set state to DOLBRACE_QUOTE2 for pattern + substitution word expansion so we don't treat single quote specially + in the pattern or replacement string + - parse_matched_pair: if we're parsing a dollar-brace word expansion + (${...}) and we're not treating single quote specially within + double quotes, single-quote the translation of $'...' ansi-c + escaped strings. Original report and fix from Eduardo A. + Bustamante López + +subst.c + - extract_dollar_brace_string: ${word/pat/rep} scanning now sets the + DOLBRACE_QUOTE2 flag instead of DOLBRACE_QUOTE so we don't treat + single quotes specially within a double-quoted string + +execute_cmd.c + - fix_assignment_words: skip over assignment statements preceding a + command word before trying to figure out whether or not assignment + statements following a possible declaration command should be + treated specially. Fixes bug reported by Dan Douglas + + + 4/4 + --- +lib/readline/readline.c + - _rl_dispatch_subseq: only call _rl_vi_set_last (and check whether + the key is a text modification command) if the key sequence length + is 1. That keeps the arrow keys from setting the last command + when called in vi command mode. Fixes bug reported by Ian A. + Watson + + 4/6 + --- +lib/readline/bind.c + - rl_parse_and_bind: when parsing a double-quoted string as the value + of a variable, make sure we skip past the leading double quote. + Fix from Andreas Schwab + +variables.c + - hash_lookup: set new local variable last_table_searched to the table + a successful lookup appears in; tested in make_local_variable to + solve the problem below + - make_local_variable: if we find a variable with the tempenv flag + set at the same `level' as variable_context', but not found in the + temporary_env (temp environment preceding the builtin), return it. + The temp environment preceding the function call has already been + merged (in execute_function) into the list of variable contexts the + function sees as shell_variables by the time this is called. Fixes + inconsistency pointed out by Dan Douglas + +subst.c + - expand_arith_string: expanded out contents of expand_string, + expand_string_internal, expand_string_if_necessary to create a + WORD_DESC and call call_expand_word_internal() on it directly. + We don't want process substitution to be performed ( 1<(2) ) should + mean something different in an arithmetic expression context. + It doesn't work to just turn on the DQUOTE flag, since that means + that things like ${x["expression"]} are not expanded correctly. + Fixes problem pointed out by Dan Douglas + + 4/13 + ---- +subst.c + - process_substitute: run the EXIT trap before exiting, as other + shells seem to. Fixes problem pointed out by Dan Douglas + + +lib/readline/readline.c + - readline_internal_setup: call rl_vi_insertion_mode to enter vi + mode instead of rl_vi_insert_mode to avoid resetting the saved last + command information. Posix says that `.' can repeat a command + that was entered on a previous line so we need to save the info. + Fixes bug reported by Ian A. Watson + + 4/14 + ---- +lib/readline/complete.c + - rl_completion_matches: make sure xrealloc returns something non-null + (can happen when interrupted by a signal) before trying to add + matches to match_list + +subst.c + - array_remove_pattern: return NULL right away if array_variable_part + returns an invisible variable + - array_length_reference: handle array_variable_part returning an + invisible variable + - get_var_and_type: handle array_variable_part returning an invisible + variable + + 4/15 + ---- +execute_cmd.c + - execute_command_internal: make sure to run the EXIT trap for group + commands anywhere in pipelines, not just at the end. From a point + raised by Andreas Schwab + +variables.c + - bind_int_variable: make sure invisible flag is unset. Fixes problems + like "declare -ai a; : $(( a[4]=4 ));" + +arrayfunc.c + - array_variable_part: return variable even if invisible flag set, + callers must handle invisible vars + + 4/18 + ---- +builtins/set.def + - unset_builtin: if -n flag given, call unset_nameref instead of + unset_variable + +variables.c + - find_variable_nameref: print warning message if nameref circular + reference detected, return NULL and let caller deal with it + +builtins/declare.def + - declare_builtin: only disallow global references at this point if + we are at the global scope + + 5/16 + ---- +configure.ac + - update release status to beta + + 5/23 + ---- +trap.c + - run_pending_traps: save and restore pipeline around calls to + evalstring() in case we get a trap while running a trap. Have to + figure out the recursive running traps issue elsewhere. Fixes + bug reported by Roman Rakus + - run_pending_traps: make sure to set running_trap to the appropriate + signal value when running a trap command + - run_pending_traps: short-circuit immediately if running_trap set + when invoked. Could change this later to only skip if it would + run the same trap as currently being run (running_trap == sig + 1) + +configure.ac + - add warning if bison not found + +lib/readline/doc/rltech.texi + - new section with an example program illustrating the callback + interface. Suggested by Peng Yu + +examples/loadables/Makefile.in + - remove references to `cut' and `getconf', which were removed in + early March + + 5/28 + ---- +lib/sh/pathphys.c + - sh_realpath: correct inverted two arguments to call to sh_makepath. + Report and fix from Julien Thomas + + 6/7 + --- +execute_cmd.c + - executing_line_number: the else clauses that are conditional on + various options being defined can simply be if clauses -- they are + mutually exclusive and all have `return' in the body. Fixes bug + reported by Flavio Medeiros + + 6/25 + ---- +lib/readline/readline.c + - readline_internal_setup: only sent the meta-key enable string to the + terminal if we've been told to use one and the terminal has been + successfully initialized (RL_ISSTATE (RL_STATE_TERMPREPPED) != 0). + Suggested by Dan Mick + +lib/readline/signals.c + - _rl_signal_handler: call any defined signal hook after calling + rl_resize_terminal when handling a SIGWINCH. We already have called + the original SIGWINCH handler but will not be resending the signal + to ourselves + + 6/27 + ---- +lib/readline/doc/history.3, doc/bash.1 + - fix description of the `$' modifier to note that it expands to the + last *word*, which is not always the last argument. Report from + ariyetz@gmail.com via gnu.org RT + + 6/29 + ---- +lib/glob/smatch.c + - glob_asciiranges: initialize to value of GLOBASCII_DEFAULT instead + of 0 (0 if not defined) + +configure.ac,config.h.in + - --enable-glob-asciiranges-default: new option, controls the value of + GLOBASCII_DEFAULT; use it to turn globasciiranges shopt option on + by default + +doc/bashref.texi + - document new --enable-glob-asciiranges-default configure option + +variables.c + - assign_in_env: implement += value appending semantics for assignments + preceding command names + + 7/4 + --- +expr.c + - set lasttok = NUM in all of the functions that result in a number, + even if it's a boolean, to avoid errors with constructs like + 1 * x = 1, which should be an asignment error. Fixes problem + pointed out by Dan Douglas + +parse.y + - decode_prompt_string: don't bother to call strcpy if + polite_directory_format returns its argument unchanged. It's not + necessary and Mac OS X 10.9 aborts because of a supposed overlapping + string copy. Bug and fix from simon@hitzemann.org + +subst.c + - parameter_brace_find_indir: new function, code from + parameter_brace_expand_indir that looks up the indirectly-referenced + variable, but does not expand it + - parameter_brace_expand_indir: call parameter_brace_find_indir to + look up indirected variable reference + - get_var_and_type: call parameter_brace_find_indir if it looks like we + are trying to manipulate an indirect variable reference like + ${!b%%foo}. This makes a difference if !b references an array + variable. Bug report from Dan Douglas + + 7/6 + --- +lib/sh/casemod.c + - sh_modcase: make sure argument passed to is_basic is <= UCHAR_MAX, + since cval can convert something to a wchar_t greater than UCHAR_MAX. + Fixes bug reported by Tomasz Tomasik + + 7/8 + --- +lib/readline/history.c + - add_history_time: if history_length == 0, referencing history_length + - 1 will result in an array bounds error, so make history_length be + at least 1 before going on. Fixes bug reported by Geng Sheng Liu + + +builtins/setattr.def + - show_func_attributes: display definition (if NODEFS argument is 0) and + attributes for a particular function; used by `declare -fp name' + +builtins/declare.def + - declare_internal: call show_func_attributes if -f supplied with -p. + Fixes inconsistency observed by Linda Walsh + +builtins/common.h + - new extern declaration for show_func_attributes + +builtins/read.def + - read_builtin: check the first supplied variable name for validity + before attempting to read any input, since we know we will have to + at least use that one. Don't check any other names yet. Suggested + by jidanni@jidanni.org + + 7/10 + ---- +redir.c + - do_redirection_internal: when closing a file descriptor with + r_close_this ([n]<&-) count close errors as redirection errors if + errno ends up as EIO or ENOSPC. Originally reported back in April + 2012 by Andrey Zaitsev + + 7/11 + ---- +redir.c + - do_redirection_internal: before calling check_bash_input, make sure + that we don't call check_bash_input for an asynchronous process that + is replacing stdin with something else. The seek backwards affects + the parent process as well, since parents and children share the + file pointer. Fixes problem originally reported in March 2013 by + Martin Jackson + + 7/13 + ---- +doc/{bash.1,bashref.texi} + - slight change to add a description of `shopt -o' suggested by Bruce + Korb + + 7/19 + ---- +lib/readline/histfile.c + - history_do_write: if close returns < 0, make sure we restore the + backup history file and return a non-zero value + - history_truncate_file: if write or close return < 0, make sure we + return a non-zero value + +[bash-4.3-beta frozen] + + 7/21 + ---- +lib/readline/isearch.c + - rl_display_search: now takes an entire search context flags word as + the second argument, instead of just reverse flag; changed callers + - rl_display_search: if the search has failed, add `failed ' to the + beginning of the search prompt + - _rl_isearch_dispatch: if the search has failed, display the entire + search string with an indication that the search failed but with the + last matching line. Suggested by jidanni@jidanni.org + +command.h + - W_ASSIGNINT: new word flag; used internally for make_internal_declare + and set by fix_assignment_words + +execute_cmd.c + - fix_assignment_words: set W_ASSIGNINT if compound assignment and -i + given as option. We don't do anything with the value yet + +subst.c + - shell_expand_word_list: rework the way the option list that is + passed to make_internal_declare is created + + 8/1 + --- +doc/{bash.1,bashref.texi} + - minor changes to description of $! based on a report from Chris + Down + +arrayfunc.c + - assign_array_element_internal: before trying to get an array's max + index to process a negative subscript, make sure the array exists. + Bug report from Geir Hauge + + 8/2 + --- +arrayfunc.c + - assign_array_element_internal: before using array_max_index() when + processing a negative subscript, make sure the variable is an array. + if it's not, use 0 as array_max_index assuming it's a string. + Fixes bug report from Geir Hauge + + 8/3 + --- +Makefile.in + - pcomplete.o: add dependency on $(DEFDIR)/builtext.h. Suggested by + Curtis Doty + + 8/5 + --- +lib/glob/sm_loop.c + - strcompare: short-circuit and return FNM_NOMATCH if the lengths of the + pattern and string (pe - p and se - s, respectively) are not equal + - strcompare: don't bother trying to set *pe or *se to '\0' if that's + what they already are. Fixes bug reported by Geir Hauge + + + 8/6 + --- +doc/{bash.1,bashref.texi},builtins/hash.def,lib/readline/doc/rluser.texi + - minor typo changes from Geir Hauge + +bultins/help.def + - show_longdoc: avoid trying to translate the empty string because it + often translates to some boilerplate about the project and + translation. Report and fix from Geir Hauge + + 8/8 + --- +builtins/help.def + - help_builtin: try two passes through the list of help topics for each + argument: one doing exact string matching and one, if the first pass + fails to find a match, doing string prefix matching like previous + versions. This prevents `help read' from matching both `read' and + `readonly', but allows `help r' to match everything beginning with + `r'. Inspired by report from Geir Hauge + + 8/13 + ---- +builtins/fc.def + - fc_builtin,fc_gethnum: calculate `real' end of the history list and + use it if -0 is specified as the beginning or end of the history + range to list. Doesn't work for fc -e or fc -s by design. Feature + requested by Mike Fied + + 8/16 + ---- +trap.c + - _run_trap_internal: use {save,restore}_parser_state instead of + {save,restore}_token_state. It's more comprehensive + + 8/23 + ---- +doc/bash.1 + - disown: remove repeated text. Report and fix from Thomas Hood + + + 8/25 + ---- +lib/readline/rltty.c + - set_special_char: fix prototype (last arg is rl_command_func_t *) + +sig.c + - set_signal_handler: return oact.sa_handler only if sigaction + succeeds; if it doesn't, return SIG_DFL (reasonable default). From + https://bugzilla.redhat.com/show_bug.cgi?id=911404 + +bashline.c + - attempt_shell_completion: fix to skip assignment statements preceding + command name even if there are no programmable completions defined. + From https://bugzilla.redhat.com/show_bug.cgi?id=994659 + - attempt_shell_completion: if still completing command word following + assignment statements, do command completion even if programmable + completion defined for partial command name entered so far + + 8/26 + ---- +pcomplete.c + - pcomp_filename_completion_function: make sure rl_filename_dequoting_function + is non-NULL before trying to call it. Bug and fix from + Andreas Schwab + +bashline.c + - bash_command_name_stat_hook: if *name is not something we're going + to look up in $PATH (absolute_program(*name) != 0), just call the + usual bash_filename_stat_hook and return those results. This makes + completions like $PWD/exam[TAB] add a trailing slash + + 9/2 + --- +builtins/read.def + - read_builtin: before comparing what we read to the delim, make sure + we are not supposed to be ignoring the delimiter (read -N). We + set the delim to -1, but it's possible to read a character whose + int value ends up being between -1 and -128. Fixes bug + reported by Stephane Chazelas + +doc/{bash.1,bashref.texi} + - word splitting: crib some language from Posix to make it clear that + characters in IFS are treated as field *terminators*, not field + *separators*. Addresses issue raised by DJ Mills + + +lib/readline/{util.c,rldefs.h} + - _rl_stricmp,_rl_strnicmp: now take const char * string arguments; + changed prototype declarations + + 9/5 + --- +doc/{bash.1,bashref.texi} + - [[: modify description of pattern matching to make it clear that the + match is performed as if the extglob option were enabled. From Red + Hat bug https://bugzilla.redhat.com/show_bug.cgi?id=1002078 + + 9/12 + ---- +lib/readline/isearch.c + - _rl_isearch_dispatch: if we read an ESC and it's supposed to + terminate the search, make sure we check for typeahead with + _rl_pushed_input_available, since installing a hook function causes + typeahead to be collected in `ibuffer' (input.c). If there is any, + make sure we still use the ESC as a prefix character. Bug and fix + from Mike Miller + + 9/16 + ---- +builtins/{caller,cd,kill,pushd,wait}.def + - builtin_usage(): make sure call to this sets return status to + EX_USAGE + + 9/18 + ---- +terminal.c + - rl_change_environment: new application-settable variable; if non- + zero (the default), readline will modify LINES and COLUMNS in the + environment when it handles SIGWINCH + - _rl_get_screen_size: if rl_change_environment is non-zero, use setenv + to modify LINES and COLUMNS environment variables + +readline.h + - rl_change_environment: new extern declaration for applications + + 9/22 + ---- +configure.ac + - relstatus: bumped version to bash-4.3-beta2 + + 9/24 + ---- + +lib/readline/readline.c + - bind_arrow_keys_internal: added more key bindings for the numeric key + pad arrow keys on mingw32. Patch from Pierre Muller + + + 10/19 + ----- + +bashline.c + - maybe_restore_tilde: version of restore_tilde that honors `direxpand'; + calls restore_tilde after saving directory expansion hook if + necessary. Report from Andreas Schwab + +builtins/cd.def + - -@: new option, allows cd to use `extended attributes' present in + NFSv4, ZFS; idea taken from ksh93. Attributes associated with a + file are presented as a directory containing the attributes as + individual files. Original patch contributed by Cedric Blancher + + + 10/20 + ----- +aclocal.m4 + - BASH_CHECK_MULTIBYTE: check for wcwidth being broken with unicode + combining characters needs a value to use when cross-compiling. + Bug report from Bert Sutherland + +doc/{bash.1,bashref.texi} + - document new -@ option to cd builtin + + 10/28 + ----- +lib/glob/{{gmisc,glob}.c,glob.h} + - extglob_pattern renamed to extglob_pattern_p, declared in glob.h + +subst.c + - expand_word_internal: typo fix: case to fix " $@\ " bug in bash-4.2 + had a typo (& isexp instead of &&) + + 10/29 + ----- +input.c + - getc_with_restart: make sure local_index and local_bufused are + reset to 0 before returning EOF, in case we are running an interactive + shell without line editing and ignoreeof is set. Report and fix + from Yong Zhang + +lib/readline/search.c + - _rl_nsearch_init: take out extra third argument to rl_message; it + only matches prototype (and maybe format) in cases where + PREFER_STDARG and USE_VARARGS are both undefined, which is rare + + 10/31 + ----- +subst.c + - process_substitute: when opening the named pipe in the child, open + without O_NONBLOCK to avoid race conditions. Happens often on AIX. + Bug report and fix from Michael Haubenwallner + + +builtins/ulimit.def + - RLIMIT_NTHR: if RLIMIT_PTHREAD is not defined, but RLIMIT_NTHR is, + use RLIMIT_NTHR (NetBSD) + + 11/5 + ---- +locale.c + - set_default_locale_vars,set_locale_var: if TEXTDOMAINDIR has been + set, and default_dir has a non-null value, call bindtextdomain(3) + when TEXTDOMAIN is assigned a value. Fixes problem reported by + Michael Arlt + + 11/6 + ---- +builtins/cd.def + - cdxattr: only create synthetic pathname in `buf' if NDIRP argument + is non-null + - change_to_directory: if we have specified -@ and cdxattr returns + failure, fail immediately. Fixes bug reported by Joshuah Hurst + + + 11/12 + ----- +redir.c + - print_redirection: change r_err_and_out (&>) and its append form, + r_append_err_and_out (&>>) cases to separate redirection operator + from filename by a space, in case we have a process substitution. + Fixes bug reported by admn ombres + + 11/15 + ----- +execute_cmd.c + - execute_simple_command: don't close process substitution fds until + we are finished executing any current shell function. Partial fix + for bug reported by John Dawson + +support/shobj-conf + - add support for Darwin 13 (Mac OS X 10.9, Mavericks). Based on a + report by Ludwig Schwardt + + 11/20 + ----- +[bash-4.3-rc1 frozen] + + 11/24 + ----- +builtins/printf.def + - bind_printf_variable: make sure that the variable assigned to is + no longer marked as invisible. Fixes bug reported by NBaH + + + 11/28 + ----- +jobs.c + - delete_old_job: fix off-by-one error in job index in call to + internal_warning. Bug report from Peter Cordes + + 11/30 + ----- +doc/bashref.texi + - add string to description of special parameters with name of + special parameter prefixed by a $, so you can search for $#, + for instance + + 12/2 + ---- +lib/readline/{histexpand.c + - get_history_event: account for current_history() possibly returning + NULL. Report and fix from Pankaj Sharma + + + 12/11 + ----- + +lib/readline/parse-colors.c + - get_funky_string: don't call abort if we see something we can't + parse; just return an error + - _rl_parse_colors: if we encounter an error while parsing $LS_COLORS + we need to leave _rl_color_ext_list as NULL after freeing its + elements, then turn off _rl_colored_stats. Report and fix from Martin + Wesdorp + + 12/13 + ----- + +lib/readline/parse-colors.c + - _rl_parse_colors: if we encounter an unrecognized prefix, throw an + error but try to recover and go on to the next specification + +variables.c + - make_local_variable: for new variables this function creates, set + the att_invisible attribute. All callers from declare_internal. + Indirectly, this is a fix for bug with `declare -n var; var=foo;' + reported by Pierre Gaston + - bind_variable: if assigning to nameref variable that doesn't have + a value yet (e.g., with `declare -n var; var=foo'), don't try to + use the unset name. Fixes a segfault reported by Pierre Gaston + + +execute_cmd.c + - execute_command_internal: make sure last_command_exit_value is set + to 0 after any command executed in the background. Fixes bug + reported by Martin Kealey + + 12/17 + ----- +support/config.{guess,sub} + - updated to latest versions from git + + 12/19 + ----- +parse.y + - struct STRING_SAVER: now has a new `flags' element, to identify the + caller: alias expansion, double-paren parsing, or parse_and_execute + - push_string: now sets flags to PSH_ALIAS if `ap' argument is non-NULL + - push_string: now doesn't attempt to call strlen on a NULL string to + set shell_input_line_size + - parser_expanding_alias, parser_save_alias, parser_restore_alias: new + functions to provide an external interface to push_string and + pop_string; parser_save_alias sets flags element to PSH_SOURCE (could + be renamed PSH_EXTERN someday) + - shell_getc: when yy_getc returns '\0', instead of just testing + whether the pushed_string_list is not-empty before popping it, don't + pop if if the saved string has flags PSH_SOURCE, indicating that + parse_and_execute set it before setting bash_input to the string. + We should continue reading to the end of that string before popping + back to a potential alias. Partial solution for the problem of aliases + with embedded newlines containing `.' commands being executed out of + order reported by Andrew Martin + - shell_getc: when yy_getc returns '\0' and there is a saved string of + type PSH_SOURCE, restart the read without popping the string stack + if we have not read to the end of bash_input.location.string. Rest + of fix for out-of-order execution problem + +externs.h + - parser_expanding_alias, parser_save_alias, parser_restore_alias: new + extern function declarations + +builtins/evalstring.c + - pe_prologue: if the parser is expanding an alias, make sure to add + an unwind-protect to restore the alias; undoes the work that will be + performed by parse_and_execute/parse_string + - parse_and_execute,parse_string: after calling push_stream to save + bash_input, check whether or not the parser is currently expanding + an alias (parser_expanding_alias() != 0). If it is, we want to save + that string in the pushed_string_list, which we do with + parser_save_alias. + + 12/23 + ----- +execute_cmd.c + - execute_for_command: make sure to set line_number before expanding + the word list, so expansion errors have the right line number. + From a report from Ben Okopnik + +expr.c + - exp2: save token pointer before calling readtok(), arrange to use + saved token pointer when printing error token on a division by 0 + error + + 12/27 + ----- +lib/readline/display.c + - rl_redisplay: when calculating effects of invisible characters in a + prompt that is split across physical screen lines to set the indices + of linebreaks, don't bother testing local_prompt_prefix (line 751). + That prefix doesn't matter when calculating prompt visible and + invisible characters. Fixes problem reported by Jinesh Choksi + + +Makefile.in + - install: make sure to use $(DESTDIR) when installing OTHER_DOCS. + Report and fix from Matthias Klose + +doc/texinfo.tex + - updated to version of 2013-09-11 + + 12/28 + ----- +lib/readline/undo.c + - rl_do_undo: if we are undoing from a history entry (rl_undo_list == + current_history()->data), make sure the change to rl_line_buffer is + reflected in the history entry. We use the guts of + rl_maybe_replace_line to do the work. Fixes problem reported by + gregrwm + + 12/30 + ----- +sig.c + - sigint_sighandler: if we get a SIGINT (and this signal handler is + installed) while the wait builtin is running, note that we received + it in the same way as jobs.c:wait_sigint_handler and return. The + various wait_for functions will look for that with CHECK_WAIT_INTR. + This fixes the wait builtin not being interruptible in an interactive + job control shell + + 12/31 + ----- +trap.c + - set_signal_hard_ignored: rename set_signal_ignored to this, since it + both sets original_signals[sig] and sets the HARD_IGNORE flag + - set_signal_ignored: new function, now just sets original_signals[sig] + +trap.h + - set_signal_hard_ignored: new external declaration + +sig.c + - initialize_terminating_signals: call set_signal_hard_ignored instead + of set_signal_ignored for signals with disposition SIG_IGN when the + shell starts + +execute_cmd.c + - setup_async_signals: make sure we get the original dispositions for + SIGINT and SIGQUIT before starting the subshell, and don't call + set_signal_ignored because that sets original_signals[sig]. If we + don't, subsequent attempts to reset handling using trap will fail + because it thinks the original dispositions were SIG_IGN. Posix + interpretation 751 (http://austingroupbugs.net/view.php?id=751) + + 1/2/2014 + -------- +lib/sh/stringvec.c + - strvec_mcreate, strvec_mresize: versions of create and resize that + use malloc and realloc, respectively, instead of xmalloc/xrealloc + +braces.c + - expand_amble,mkseq: use strvec_mcreate/strvec_mresize so we can + catch and handle memory allocation failures instead of aborting + with the xmalloc/xrealloc interface + +lib/sh/strdup.c + - strdup replacement function for ancient systems that don't have it + +lib/sh/itos.c + - mitos: new function, itos that uses strdup instead of savestring + +externs.h + - strvec_mcreate/strvec_mresize: new extern declarations + - mitos: new extern declaration + +configure.ac + - bash version moved to 4.3-rc2 + + 1/6 + --- +doc/bash.1,lib/readline/doc/{rluser.texi,readline.3} + - separate the description of what happens when readline reads the + tty EOF character from the description of delete-char, leaving a + note in the delete-char description about common binding for ^D. + From suggestion by Parke + +lib/readline/doc/{version.texi,history.3,*.texi} + - updated email addresses and copyright dates + + 1/7 + --- +variables.c + - delete_var: new function, just removes a variable from a hash table + and frees it, without doing anything else + - make_variable_value: if we are trying to assign to a nameref variable, + return NULL if the value is null or the empty string or not a valid + identifier + +variables.h + - delete_var: new extern declaration + +subst.h + - ASS_NAMEREF: new define for assignments, means assigning to a nameref + variable + +builtins/declare.def + - declare_internal: if we are creating and assigning to a nameref + variable, make sure the value is a valid variable name (checks done + by make_variable_value via bind_variable_value) and display an + error message, deleting the variable we just created, if it is not. + Fixes bug reported by Peggy Russell + + 1/9 + --- +builtins/declare.def + - declare_internal: turning on nameref attribute for an existing + variable turns off -i/-l/-u/-c attributes (essentially the ones + that cause evaluation at assignment time) for ksh93 compat + +builtins/setattr.def + - show_name_attributes: if asked to display attributes and values for + a nameref variable, don't follow the nameref chain to the end. More + ksh93 compat + + 1/10 + ---- +trap.c + - _run_trap_internal: use {save,restore}_parser_state instead of + {save,restore}_token_state, like in run_pending_traps() + - _run_trap_internal: call {save,restore}_pipeline like in + run_pending_traps() + - run_pending_traps: since we no longer run traps in a signal handler + context, do not block and unblock the trapped signal while the + trap is executing + - run_pending_traps: allow recursive invocations (basically, running + traps from a trap handler) with only a warning if the shell is + compiled in debug mode. If a caller doesn't want this to happen, + it should test running_trap > 0. signal_in_progress (sig) only works + for the signals the shell handles specially + +bashline.c + - bash_event_hook: make sure we clean up readline if interrupt_state + is set, not only when SIGINT is not trapped. check_signals_and_traps + will call check_signals, which calls QUIT, which will longjmp back + to top_level, running the interrupt trap along the way. Fixes the + problem of signal handlers being reset out from under readline, and + not being set properly the next time readline is called, because + signals_set_flag is still set to 1. XXX - might need to do this + for other signals too? + + 1/11 + ---- +subst.h + - SD_GLOB: new define for skip_to_delim; means we are scanning a + glob pattern. + +subst.c + - skip_to_delim: if flags include SD_GLOB, assume we are scanning a + glob pattern. Currently only used to skip bracket expressions + which may contain one of the delimiters + + 1/12 + ---- +subst.c + - parameter_brace_expand: when expanding $@ as part of substring + expansion, pattern substitution, or case modification, don't turn + on the QUOTED_NULL flag. The code that constructs the word to be + returned from expand_word_internal expects a different code path + when $@ is being expanded. Fixes bug reported by Theodoros + V. Kalamatianos diff --git a/bashline.c b/bashline.c index 5320a4eee..79b8bcf8f 100644 --- a/bashline.c +++ b/bashline.c @@ -4188,10 +4188,11 @@ bash_dequote_text (text) static int bash_event_hook () { - /* If we're going to longjmp to top_level, make sure we clean up readline */ - if (interrupt_state && signal_is_trapped (SIGINT) == 0) + /* If we're going to longjmp to top_level, make sure we clean up readline. + check_signals will call QUIT, which will eventually longjmp to top_level, + calling run_interrupt_trap along the way. */ + if (interrupt_state) rl_cleanup_after_signal (); - bashline_reset_event_hook (); check_signals_and_traps (); /* XXX */ return 0; diff --git a/builtins/declare.def b/builtins/declare.def index ced816790..a634e7ce8 100644 --- a/builtins/declare.def +++ b/builtins/declare.def @@ -143,7 +143,7 @@ declare_internal (list, local_var) int flags_on, flags_off, *flags; int any_failed, assign_error, pflag, nodefs, opt, mkglobal, onref, offref; char *t, *subscript_start; - SHELL_VAR *var, *refvar; + SHELL_VAR *var, *refvar, *v; FUNCTION_DEF *shell_fn; flags_on = flags_off = any_failed = assign_error = pflag = nodefs = mkglobal = 0; @@ -374,30 +374,6 @@ declare_internal (list, local_var) else if ((flags_on & att_array) || making_array_special) var = make_local_array_variable (name, making_array_special); else -#endif -#if 0 - /* XXX - this doesn't work right yet. */ - /* See below for rationale for doing this. */ - if (flags_on & att_nameref) - { - /* See if we are trying to modify an existing nameref variable */ - var = find_variable_last_nameref (name); - if (var && nameref_p (var) == 0) - var = make_local_variable (name); - } - else if (flags_off & att_nameref) - { - var = (SHELL_VAR *)NULL; - /* See if we are trying to modify an existing nameref variable */ - refvar = find_variable_last_nameref (name); - if (refvar && nameref_p (refvar) == 0) - refvar = 0; - if (refvar) - var = make_local_variable (nameref_cell (refvar)); - if (var == 0) - var = make_local_variable (name); - } - else #endif var = make_local_variable (name); /* sets att_invisible for new vars */ if (var == 0) @@ -534,6 +510,11 @@ declare_internal (list, local_var) assign_error++; NEXT_VARIABLE (); } + else if (flags_on & att_nameref) + { + /* ksh93 compat: turning on nameref attribute turns off -ilu */ + VUNSETATTR (var, att_integer|att_uppercase|att_lowercase|att_capcase); + } /* Cannot use declare +r to turn off readonly attribute. */ if (readonly_p (var) && (flags_off & att_readonly)) @@ -651,7 +632,19 @@ declare_internal (list, local_var) /* bind_variable_value duplicates the essential internals of bind_variable() */ if (offset) - bind_variable_value (var, value, aflags); + { + if (onref) + aflags |= ASS_NAMEREF; + v = bind_variable_value (var, value, aflags); + if (v == 0 && onref) + { + sh_invalidid (value); + assign_error++; + /* XXX - unset this variable? or leave it as normal var? */ + delete_var (var->name, mkglobal ? global_variables : shell_variables); + NEXT_VARIABLE (); + } + } /* If we found this variable in the temporary environment, as with `var=value declare -x var', make sure it is treated identically diff --git a/builtins/setattr.def b/builtins/setattr.def index 390b3eb19..3be31896e 100644 --- a/builtins/setattr.def +++ b/builtins/setattr.def @@ -455,7 +455,11 @@ show_name_attributes (name, nodefs) { SHELL_VAR *var; +#if 0 var = find_variable_tempenv (name); +#else + var = find_variable_noref (name); +#endif if (var && invisible_p (var) == 0) { diff --git a/doc/bash.1 b/doc/bash.1 index 5f4774d6d..6f63fbb8a 100644 --- a/doc/bash.1 +++ b/doc/bash.1 @@ -3,14 +3,14 @@ .\" .\" Chet Ramey .\" Case Western Reserve University -.\" chet@po.cwru.edu +.\" chet.ramey@case.edu .\" -.\" Last Change: Sun Oct 20 22:13:29 EDT 2013 +.\" Last Change: Mon Jan 6 16:40:31 EST 2014 .\" .\" bash_builtins, strip all but Built-Ins section .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY -.TH BASH 1 "2013 October 20" "GNU Bash 4.3" +.TH BASH 1 "2014 January 6" "GNU Bash 4.3" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. @@ -5804,14 +5804,22 @@ and \fIemacs\fP as the editor, in that order. .PP .PD 0 .TP -.B delete\-char (C\-d) -Delete the character at point. If point is at the -beginning of the line, there are no characters in the line, and -the last character typed was not bound to \fBdelete\-char\fP, -then return +.B \fIend\-of\-file\fP (usually C\-d) +The character indicating end-of-file as set, for example, by +.if t \f(CWstty\fP. +.if n ``stty''. +If this character is read when there are no characters +on the line, and point is at the beginning of the line, Readline +interprets it as the end of input and returns .SM .BR EOF . .TP +.B delete\-char (C\-d) +Delete the character at point. +If this function is bound to the +same character as the tty \fBEOF\fP character, as \fBC\-d\fP +commonly is, see above for the effects. +.TP .B backward\-delete\-char (Rubout) Delete the character behind the cursor. When given a numeric argument, save the deleted text on the kill ring. diff --git a/doc/bash.pdf b/doc/bash.pdf index 9ee726fe32292edb41cad87d7cf75c04400c1426..704168284b22db4f1cbda0dc723a4720afa0387e 100644 GIT binary patch delta 248354 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 z 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

e>(;FYk*?HU!gJQQPj6{BRCHk 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