]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
commit bash-20180622 snapshot
authorChet Ramey <chet.ramey@case.edu>
Mon, 25 Jun 2018 19:33:19 +0000 (15:33 -0400)
committerChet Ramey <chet.ramey@case.edu>
Mon, 25 Jun 2018 19:33:19 +0000 (15:33 -0400)
15 files changed:
CWRU/CWRU.chlog
CWRU/old-changelogs/CWRU.chlog.v15 [new file with mode: 0644]
builtins/complete.def
config.h.in
configure
configure.ac
doc/bash.1
doc/bashref.texi
examples/loadables/sleep.c
lib/malloc/malloc.c
lib/malloc/mstats.h
lib/malloc/stats.c
lib/readline/doc/rltech.texi
tests/RUN-ONE-TEST
variables.c

index ec7ef43fe7fbd65efa5edb8a8a9e1b5fb5c44d06..69a8ffce55d9c62abc6f0747509c2f11a7c5f3fd 100644 (file)
-                                2/14/2011
+                                9/15/2016
                                 ---------
-[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 <dearvoid@gmail.com>
-
-                                  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 <jue@jue.li>
-
-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
-         <dearvoid@gmail.com>
-
-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 <dearvoid@gmail.com>
-
-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
-         <vapier@gentoo.org>
-
-                                  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 <dennistwilliamson@gmail.com>
-
-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 <jojo@schmitz-digital.de>
-
-support/shobj-conf
-       - add a stanza for nsk on the Tandem from Joachim Schmitz
-         <jojo@schmitz-digital.de>
-
-{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
-         <jojo@schmitz-digital.de>
-
-                                   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 <foutrelis@gmail.com>
-
-                                   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 <mfwitten@gmail.com>
-
-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
-         <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
-
-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 <mfwitten@gmail.com>
-       - 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 <mfwitten@gmail.com>
-       - 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 <mfwitten@gmail.com>
-       - 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 <mfwitten@gmail.com>
-
-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 <andres.p@zoho.com>
-
-                                   3/4
-                                   ---
-lib/readline/bind.c
-       - add a missing free of `names' in rl_function_dumper.  Bug report
-         and fix from Michael Snyder <msnyder@vmware.com>
-
-                                   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 <micah@cowan.name>
-
-                                   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 <torvalds@linux-foundation.org>, bug report originally
-         from Oleg Nesterov <oleg@redhat.com>
-
-                                   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 <cfajohnson@gmail.com>
-
-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 <rrakus@redhat.com>
-
-                                  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 <werner@suse.de>
-       - 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 <sam@liddicott.com>
-
-                                  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 <blue3waters@gmail.com>
-
-                                  3/26
-                                  ----
-lib/readline/rltypedefs.h
-       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
-         suggested by Tom Tromey <tromey@redhat.com>
-
-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
-         <tromey@redhat.com>
-
-                                  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 <dennistwilliamson@gmail.com>
-
-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 <h.bekel@googlemail.com>
-
-                                  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 <mfwitten@gmail.com>
-
-lib/readline/display.c
-       - include <pc.h> 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 <pc.h> 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  <eliz@gnu.org>
-
-                                   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 <arbogast.cedric@gmail.com>
-
-                                  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 <mdinger.bugzilla@gmail.com>
-
-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 <dearvoid@gmail.com>
-
-                                  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 <rrakus@redhat.com>
-
-                                  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
-         <piuma@piumalab.org>
-
-                                  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." <skunk@iSKUNK.ORG>
-
-                                  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
-         <johan.hattne@utsouthwestern.edu>
-
-                                   5/2
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add forward reference to `Pattern Matching' from `Pathname
-         Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   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 \<CTLESC> 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 <sbohrer@rgmadvisors.com>
-
-                                   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 <rrakus@redhat.com>
-
-                                   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 <rbyshko@gmail.com>
-
-                                  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 <marten.wikstrom@keystream.se>
-
-                                  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 <arbogast.cedric@gmail.com>
-
-                                  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 <mlichvar@redhat.com>
-
-builtins/help.def
-       - help_builtin: change strncmp to strcmp so that `help read' no longer
-         matches `readonly'.  Suggested by Clark Wang <dearvoid@gmail.com>
-
-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 <samuel.thibault@gnu.org>
-
-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
-         <d.l.tDecontes@free.fr>
-
-                                  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
-         <keithw@mit.edu>
-
-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
-         <cubranic@stat.ubc.ca>
-
-                                  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 <eblake@redhat.com>
-
-                                  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
-         <kulkarniniraj14@gmail.com>
-
-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
-         <mark.herbert@gmail.com>
-
-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
-         <qiaomuf@gentoo.org>
-
-                                  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 <jrnieder@gmail.com>
-
-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
-         <curtis@greenkey.net>
-
-                                  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 <lrhorer@satx.rr.com>
-
-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 <ville.skytta@iki.fi>
-
-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 <rsantos@grupopie.com>
-
-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
-         <arnold@skeeve.com>
-
-                                  6/30
-                                  ----
-execute_cmd.c
-       - execute_pipeline: make sure the lastpipe code is protected by
-         #ifdef JOB_CONTROL.  Fixes problem reported by Thomas Cort
-         <tcort@minix3.org>
-
-                                   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 <jan.ktratochvil@redhat.com> 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 <arnold@skeeve.com>
-
-                                   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 <dearvoid@gmail.com>
-       - _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
-         <jan.kratochvil@redhat.com>
-
-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 <ralph@inputplus.co.uk>
-
-                                  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
-         <mlichvar@redhat.com>
-
-builtins/printf.def
-       - getint: if garglist == 0, return whatever getintmax returns (0).
-         Fixes bug reported  by Ralph Coredroy <ralph@inputplus.co.uk>
-
-                                  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 <gmargo@pacbell.net>
-
-                                   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
-         <lhunath@lyndir.com>
-
-                                   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 <bash@tlinx.org>.
-         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
-         <ohnobinki@ohnopublishing.net> -- 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 <vince.sheffer@apisphere.com>
-
-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 <rrakus@redhat.com>
-
-                                  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
-         <rrakus@redhat.com>
-
-                                   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 <diegoaugustomolina@gmail.com>
-
-                                  9/19
-                                  ----
-expr.c
-       - exppower: replace the simple exponentiation algorithm with an
-         implementation of exponentiation by squaring.  Inspired by report
-         from Nicolas ARGYROU <nargy@yahoo.com>
-
-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 <backuppc-users@whitleymott.net>
-
-doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
-       - minor editorial changes inspired by suggestions from
-         Roger Zauner <rogerx.oss@gmail.com>
-
-                                  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
-         <bensberg@justemail.net>
-       - 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 <daysleeper@centrum.cz>
-
-                                  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
-         <bugs@kayari.org>
-       - 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 <pto@linuxbog.dk> and Patrick Pfeifer
-         <patrick@pfeifer.de>
-       - 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 <patrick@pfeifer.de>
-
-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 <dearvoid@gmail.com>
-
-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 <davidparks21@yahoo.com>
-
-                                  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 <jreiser@bitwagon.com>
-         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 <vapier@gentoo.org> 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 <vapier@gentoo.org> 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 <Len.Giambrone@intersystems.com>
-
-                                  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
-         <wooledg@eeg.ccf.org>
-
-                                  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 <lolilolicon@gmail.com>
-
-                                  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 <michael@kalisz.homelinux.net>
-
-                                  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 <jaak.ristioja@cyber.ee>
-       - 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 <ormaaj@gmail.com>
-
-                                  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 <vapier@gentoo.org>
-
-                                  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
-         <jens.schmidt35@arcor.de>
-
-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 <jan.ktratochvil@redhat.com> 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
-         <stephane_chazelas@yahoo.fr>
-
-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 <eggert@cs.ucla.edu>
-
-                                  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 <schwab@linux-m68k.org>
-
-builtins/read.def
-       - skip over NUL bytes in input, as most modern shells seem to.  Bug
-         report by Matthew Story <matt@tablethotels.com>
-
-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
-         <pierre.gaston@gmail.com>
-
-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
-         <g.clare@opengroup.org> 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 <yanegomi@gmail.com>
-       - 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
-         <yanegomi@gmail.com>
-       - 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 <yanegomi@gmail.com>
-       - 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
-         <panyongzhi@gmail.com>
-
-                                  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 <panyongzhi@gmail.com>
-       - 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
-         <dearvoid@gmail.com>
-
-                                  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 <hanzl@noel.feld.cvut.cz>
-
-                                  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
-         <kazikcz@gmail.com>
-
-                                  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 <dethrophes@motd005>
-
-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 <raphael.droz+floss@gmail.com>
-       - 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
-         <ormaaj@gmail.com>
-
-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 <pengyu.ut@gmail.com>
-
-                                  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
-         <bill@ycc.com>
-
-                                  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 <p@draigbrady.com>
-       - 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
-         <raphael.droz+floss@gmail.com>
-
-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 <sungpae@gmail.com>
-
-                                  1/18
-                                  ----
-
-{configure,config.h}.in
-       - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
-         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 <mlichvar@redhat.com>
-
-                                  1/21
-                                  ----
-
-lib/readline/readline.c:
-       - _rl_dispatch_subseq: add an inter-character timeout for multi-char
-         key sequences.  Suggested by <rogerx.oss@gmail.com>.  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 <ormaaj@gmail.com>
-
-
-                                  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
-         <pierre.muller@ics-cnrs.unistra.fr>
-
-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 <bash@tlinx.org>
-
-                                   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 <james_avera@yahoo.com>
-
-                                   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 <rogerx.oss@gmail.com>
-       - _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
-         <rogerx.oss@gmail.com>
-
-                                   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 <schwab@linux-m68k.org>
-
-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
-         <Ewan.Mellor@eu.citrix.com>
-
-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
-         <ormaaj@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                  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 <dethrophes@web.de>
-
-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 <dethrophes@web.de>
-       - 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 <dethrophes@web.de>
-
-                                  2/21
-                                  ----
-doc/{bash,builtins}.1
-       - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
-
-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 <derflob@derflob.de>
-
-                                  2/22
-                                  ----
-lib/sh/shquote.c
-       - sh_backslash_quote: quote tilde in places where it would be
-         expanded.  From a report from John Kearney <dethrophes@web.de>
-
-                                  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 <rdkehn@yahoo.com>
-
-                                  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 <dethrophes@web.de>
-       - u32toutf16: function to convert unsigned 32-bit value (unicode) to
-         UTF-16.  From John Kearney <dethrophes@web.de>
-       - 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 <dethrophes@web.de>
-       - 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 <sar@nec-labs.com>
-
-                                   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 <ormaaj@gmail.com>
-
-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 <sami.pietila@gmail.com>
-
-                                   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
-         <werner@suse.de> 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
-         <fabrizio.ge@tiscali.it>
-       - 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 <fabrizio.ge@tiscali.it>
-
-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
-         <siddhesh@redhat.com>
-
-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 <medgar123@gmail.com>
-
-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 <jurij.mihelic@fri.uni-lj.si>
-
-                                  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 <bill@ycc.com>
-
-                                   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
-         <rogerx.oss@gmail.com>; this prompted by report from Barry Downes
-         <barry.downes@gmail.com>
-
-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
-         <wooledg@eeg.ccf.org>
-
-                                  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 <stdbool.h> 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 <petr.sumbera@sun.com>
-
-                                  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 <petr.sumbera@sun.com>
-       - 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 <arnold@skeeve.com>
-
-                                  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 <vapier@gentoo.org>,
-         fix from Andreas Schwab <schwab@linux-m68k.org>
-
-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 <wooledg@eeg.ccf.org>
-
-                                   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 <RKuhlmann@orga-systems.com>
-       - 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 <ormaaj@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                  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 <ormaaj@gmail.com>
-
-                                  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 <backuppc-users@whitleymott.net> and
-         supplemented by Dan Douglas <ormaaj@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - changes to the description of substring expansion inspired by
-         suggestions from Bill Gradwohl <bill@ycc.com>
-
-doc/bashref.texi
-       - added substring expansion examples inspired by suggestions from
-         Bill Gradwohl <bill@ycc.com>
-
-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 <stddef.h>.  Fix from
-         John E. Malmberg <wb8tyw@qsl.net>
-
-                                   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
-         <levertond@googlemail.com>
-
-                                   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
-         <scotty.mcmillan@gmail.com>
-       - 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" <dave_br@gmx.com>
-
-                                   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 <bash@tlinx.org>
-
-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 <schweikh@schweikhardt.net>
-
-                                  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
-         <nshyrokovskiy@gmail.com>
-
-                                  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 <ormaaj@gmail.com>
-
-                                  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 <wb8tyw@qsl.net>
-
-                                  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
-         <svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
-       - 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 <max@quendi.de>
-
-                                  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 <dennistwilliamson@gmail.com>
-
-                                  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 <dennistwilliamson@gmail.com>, fix from
-         Andreas Schwab <schwab@linux-m68k.org>
-       - 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 <rainer.blome@gmx.de>
-
-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 <pengyu.ut@gmail.com>
-
-                                  7/24
-                                  ----
-configure.in
-       - interix: define RECYCLES_PIDS.  Based on a report from Michael
-         Haubenwallner <michael.haubenwallner@salomon.at>
-
-                                  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
-         <michael.haubenwallner@salomon.at>
-
-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 <michael.haubenwallner@salomon.at>
-
-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
-         <michael.haubenwallner@salomon.at>
-
-                                  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 <lhunath@lyndir.com>
-
-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
-         <lhunath@lyndir.com>
-
-{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 <sys/param.h> 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 <clark.wang@oracle.com>
-
-                                  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
-         <dearvoid@gmail.com>
-
-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 <techlivezheng@gmail.com>
-
-                                  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 <ormaaj@gmail.com>
-
-                                  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 <armandsl@gmail.com>
-
-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 <vapier@gentoo.org>
-
-                                  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 <soltys@ziu.info>
-
-doc/bashref.texi
-       - some small formatting changes from Karl Berry <karl@freefriends.org>
-
-                                  8/27
-                                  ----
-lib/readline/doc/{history,rlman,rluserman}.texi
-       - some small formatting changes from Karl Berry <karl@freefriends.org>
-
-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 <dennistwilliamson@gmail.com>
-         and Chris F. A. Johnson <chris@cfajohnson.com>
-
-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 <stefano.lattarini@gmail.com>
-
-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}<file
-
-redir.c
-       - redir_varassign: bind_var_to_int already handles array assignments,
-         so don't need to do anything more for things like {a[i]}<file
-       - redir_varvalue: changes to allow references to {a[i]} when
-         performing redirections using valid_array_reference and
-         get_array_value.  Adds functionality requested most recently by
-         <unknown@vmw-les.eng.vmware.com>
-
-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 <mkoskar@gmail.com> and most recently by Jordan Michael
-         Ziegler <jziegler@bnl.gov>
-
-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
-         <pierre.gaston@gmail.com>
-
-                                   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 <ormaaj@gmail.com>
-
-                                   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 <gerd.hofmann.nbg@googlemail.com>
-
-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 <vermaelen.wouter@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                  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 <benoit.vaugon@gmail.com>
-
-                                  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 <rrakus@redhat.com>
-
-configure.ac
-       - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from
-         Joachim Schmitz <jojo@schmitz-digital.de>
-
-                                  9/16
-                                  ----
-subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c
-       - minor code cleanups from Joachim Schmitz <jojo@schmitz-digital.de>
-
-lib/readline/colors.h
-       - workaround for HP NonStop compiler issue with <stdbool.h> from
-         Joachim Schmitz <jojo@schmitz-digital.de>
-
-                                  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 <dualbus@gmail.com>
-
-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 <info@skeena.net>
-
-                                  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 <pclouds@gmail.com>
-
-                                  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 <hans1worst@gmail.com>
-
-                                  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 <baldiniebaldini@gmail.com>
-       - 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 <kaasen@nvg.ntnu.no>
-
-                                  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
-         <zls.sogou@gmail.com>
-
-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 <zls.sogou@gmail.com>
-       - 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 <zls.sogou@gmail.com>
-
-                                  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 <nikolai.kondrashov@redhat.com>
-
-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 <zev@bewilderbeest.net>
-       - 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 <sgf.dma@gmail.com>
-
-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 <idfah@cs.colostate.edu>
-
-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 <idfah@cs.colostate.edu>
-
-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 <vmkari@cc.helsinki.fi>
-
-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 <sam@liddicott.com>
-
-                                  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
-         <idfah@cs.colostate.edu>
-
-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
-         <wb8tyw@qsl.net>
-
-                                  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 <me@timfriske.com>
-
-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 <me@timfriske.com>
-
-                                  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 <me@timfriske.com>
-
-                                  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
-         <arvidjaar@gmail.com>
-
-                                  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 <ulfalizer@gmail.com>
-
-                                  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 <arvidjaar@gmail.com>
-
-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 <vapier@gentoo.org>
-
-                                  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 <raphael.droz@gmail.com>
-
-                                  12/13
-                                  -----
-execute_cmd.c
-       - execute_coproc: handle the command's exit status being inverted
-         (an oversight).  Fixes bug reported by DJ Mills
-         <danielmills1@gmail.com> and Andreas Schwab <schwab@linux-m68k.org>
-
-                                  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
-         <pierre.muller@ics-cnrs.unistra.fr>
-
-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 <dearvoid@gmail.com>
-
-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 <vapier@gentoo.org>
-
-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 <Roman.Fiedler@ait.ac.at>
-
-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 <rschiele@gmail.com>
-
-                                  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
-         <eggert@cs.ucla.edu>
-       - 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 <vituko@gmail.com>, 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 <wb8tyw@qsl.net> 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
-         <raphael.droz@gmail.com>
-       - 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 <nagler@bivio.biz>
-
-                                   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<dualbus@gmail.com>  and Dan Douglas <ormaaj@gmail.com>
-
-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
-         <dualbus@gmail.com>
-
-                                  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
-         <ormaaj@gmail.com>
-
-                                  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
-         <ormaaj@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                  1/15
-                                  ----
-builtins/cd.def
-       - cd_builtin: make sure call to internal_getopt handles -e option.
-         Fixes bug reported by <mashimiao.fnst@cn.fujitsu.com>
-
-                                  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 <wq-doux@cn.fujitsu.com>
-
-                                  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 <ormaaj@gmail.com> [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
-         <ormaaj@gmail.com>
-
-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 <rrakus@redhat.com>
-
-                                  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
-         <konsolebox@gmail.com>; 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
-         <ormaaj@gmail.com>
-
-                                  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 <egmont@gmail.com>
-
-                                  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 <vapier@gentoo.org>
-
-                                  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 <ormaaj@gmail.com>
-
-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 <vapier@gentoo.org>
-
-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 <ttrnka@mail.muni.cz>
-
-                                   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 <vapier@gentoo.org>
-
-                                  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" <dashing@hushmail.com>
-
-
-                                  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 <bruce.korb@gmail.com>
-
-                                  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 <rich.tollerton@ni.com>
-
-                                  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 <p@draigbrady.com> 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 <egmont@gmail.com>
-       - 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 <stephane.chazelas@gmail.com>
-
-                                  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 <signal.h> 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 <gotmynick@gmail.com>
-
-                                   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 <info@skeena.net>
-
-[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 <mattdr@google.com>
-
-                                  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
-         <jonathan.leffler@gmail.com>
-
-                                  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 <dualbus@gmail.com>
-
-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
-         <ormaaj@gmail.com>
-
-                                   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 <watson_ian_a@lilly.com>
-
-                                   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 <schwab@linux-m68k.org>
-
-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 <ormaaj@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                  4/13
-                                  ----
-subst.c
-       - process_substitute: run the EXIT trap before exiting, as other
-         shells seem to.  Fixes problem pointed out by Dan Douglas
-         <ormaaj@gmail.com>
-
-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 <watson_ian_a@lilly.com>
-
-                                  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 <schwab@linux-m68k.org>
-
-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 <rrakus@redhat.com>
-       - 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 <pengyu.ut@gmail.com>
-
-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 <jthomas@exosec.fr>
-
-                                   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 <flaviomotamedeiros@gmail.com>
-
-                                  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 <dan.mick@inktank.com>
-
-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 <ormaaj@gmail.com>
-
-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 <ormaaj@gmail.com>
-
-                                   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 <scx.mail@gmail.com>
-
-                                   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
-         <gsliu.tju@gmail.com>
-
-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 <bash@tlinx.org>
-
-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 <jstcdr@gmail.com>
-
-                                  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 <mjackson220.list@gmail.com>
-
-                                  7/13
-                                  ----
-doc/{bash.1,bashref.texi}
-       - slight change to add a description of `shopt -o' suggested by Bruce
-         Korb <bruce.korb@gmail.com>
-
-                                  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 <chris@chrisdown.name>
-
-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 <geir.hauge@gmail.com>
-
-                                   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 <geir.hauge@gmail.com>
-
-                                   8/3
-                                   ---
-Makefile.in
-       - pcomplete.o: add dependency on $(DEFDIR)/builtext.h. Suggested by
-         Curtis Doty <curtis@greenkey.net>
-
-                                   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
-         <geir.hauge@gmail.com>
-
-                                   8/6
-                                   ---
-doc/{bash.1,bashref.texi},builtins/hash.def,lib/readline/doc/rluser.texi
-       - minor typo changes from Geir Hauge <geir.hauge@gmail.com>
-
-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 <geir.hauge@gmail.com>
-
-                                   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 <geir.hauge@gmail.com>
-
-                                  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 <micfied@gmail.com>
-
-                                  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
-         <jdthood@gmail.com>
-
-                                  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 <schwab@linux-m68k.org>
-
-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 <stephane.chazelas@gmail.com>
-
-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
-         <danielmills1@gmail.com>
-
-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 <mtmiller@ieee.org>
-
-                                  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
-         <pierre.muller@ics-cnrs.unistra.fr>
-
-                                  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 <schwab@linux-m68k.org>
-
-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
-         <cedric.blancher@gmail.com>
-
-                                  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 <bertsutherland@gmail.com>
-
-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 <yong.zhang@windriver.com>
-
-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
-         <michael.haubenwallner@salomon.at>
-
-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 <qwertologe@googlemail.com>
-
-                                  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
-         <joshhurst@gmail.com>
-
-                                  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 <admn.ombres@gmail.com>
-
-                                  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 <john.dawson@gmail.com>
-
-support/shobj-conf
-       - add support for Darwin 13 (Mac OS X 10.9, Mavericks).  Based on a
-         report by Ludwig Schwardt <ludwig.schwardt@gmail.com>
-
-                                  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
-         <nbah@sfr.fr>
-
-                                  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 <peter@cordes.ca>
-
-                                  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 <pankaj.s01@samsung.com>
-
-
-                                  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 <mwesdorp@casema.nl>
-
-                                  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 <pierre.gaston@gmail.com>
-       - 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
-         <pierre.gaston@gmail.com>
-
-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 <martin@kurahaupo.gen.nz>
-
-                                  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 <andrew.martin@gmail.com>
-       - 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 <ben@okopnik.com>
-
-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
-         <jinesh@onelittlehope.com>
-
-Makefile.in
-       - install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
-         Report and fix from Matthias Klose <doko@debian.org>
-
-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 <backuppc-users@whitleymott.net>
-
-                                  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 <parke.nexus@gmail.com>
-
-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 <prusselltechgroup@gmail.com>
-
-                                   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 <thkala@gmail.com>
-
-                                  1/19
-                                  ----
-subst.c
-       - list_dequote_escapes: new function; analogue of list_quote_escapes
-
-pathexp.c
-       - quote_string_for_globbing: fix case where unescaped ^A is last char
-         in string; need to pass it through unaltered instead of turning it
-         into a bare backslash
-       - quote_string_for_globbing: when quoting for regexp matching in [[,
-         don't treat backslash as a quote character; quote the backslash as
-         any other character.  Part of investigation into reports from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  1/25
-                                  ----
-builtins/gen-helpfiles.c
-       - write_helpfiles: add prototype
-       - make sure to #undef xmalloc/xfree/xrealloc/free if USING_BASH_MALLOC
-         is defined. the code does not use them, and we don't link against
-         xmalloc.o. Report from Linda Walsh <bash@tlinx.org>
-
-Makefile.in
-       - variables.o: add dependency on builtins/builtext.h; helps with
-         parallel builds.  Report from Linda Walsh <bash@tlinx.org>
-
-support/shobj-conf
-       - darwin: combine the stanzas into one that will not require them to
-         be updated on each Mac OS X release.  Report and fix from Max Horn
-         <max@quendi.de>
-
-                                  1/27
-                                  ----
-support/shobj-conf
-       - darwin: changed the install_name embedded into the shared library
-         to contain only the major version number, not the minor one. The
-         idea is that the minor versions should all be API/ABI compatible,
-         and it is better to link automatically with the latest one.  Idea
-         from Max Horn <max@quendi.de>
-
-                                  1/29
-                                  ----
-[bash-4.3-rc2 released]
-
-                                  1/30
-                                  ----
-lib/readline/readline.h
-       - rl_clear_history, rl_free_keymap: add extern declarations.  Report
-         from Hiroo Hayashi <hiroo.hayashi@computer.org>
-
-general.c
-       - include trap.h for any_signals_trapped() prototype
-
-lib/sh/unicode.c
-       - include <stdio.h> for sprintf prototype
-
-                                  1/31
-                                  ----
-execute_cmd.c
-       - execute_simple_command: only posix-mode shells should exit on an
-         assignment failure in the temporary environment preceding a special
-         builtin. This is what the documentation and code comments have
-         always said
-       - execute_simple_command: make sure redirection errors, word expansion
-         errors, and assignment errors to Posix special builtins cause a
-         non-interactive posix mode shell to exit.  Previously the shell
-         would not exit if the failed special builtin was on the LHS of ||
-         or &&
-
-pathexp.c
-       - quote_string_for_globbing: when quoting a regular expression
-         (QGLOB_REGEXP), allow an unquoted backslash to pass through
-         unaltered. Don't use it as a quote character or quote it.  More
-         investigation from 1/24 and report by Mike Frysinger
-         <vapier@gentoo.org>
-       - quote_string_for_globbing: when quoting a regular expression
-         (QGLOB_REGEXP), turn CTLESC CTLESC into CTLESC without adding a
-         backslash to quote it. We should not have to quote it because it is
-         not a character special to EREs. More investigation from 1/24
-
-lib/glob/glob.c
-       - glob_testdir: now takes a second flags argument (currently unused);
-         changed prototype and callers
-
-                                   2/1
-                                   ---
-lib/glob/glob.c
-       - glob_testdir: if flags argument includes GX_ALLDIRS (globstar), use
-         lstat so we skip symlinks when traversing the directory tree.
-         Originally reported by Chris Down <chris@chrisdown.name>
-
-                                   2/2
-                                   ---
-lib/readline/undo.c
-       - rl_do_undo: make sure CUR is non-zero before dereferencing it to
-         check cur->data against rl_undo_list.  Report and fix from
-         Andreas Schwab <schwab@linux-m68k.org>
-
-doc/{bash.1,bashref.texi}
-       - added slight clarifying language to the description of $*,
-         describing what happens when the expansion is not within double
-         quotes
-
-                                   2/4
-                                   ---
-test.c
-       - unary_test: add code to -v case so that it interprets `bare' array
-         references (foo[1]) and returns true if that index has a value
-
-                                   2/5
-                                   ---
-trap.c
-       - restore_default_signal: fix SIGCHLD special case for SIG_TRAPPED flag
-         off but SIG_INPROGRESS mode set and handler IMPOSSIBLE_TRAP_HANDLER;
-         continue with resetting handler in this case. maybe_set_sigchld_trap
-         will check these things before resetting sigchld trap from
-         run_sigchld_trap.  Fixes (apparently long-standing?) problem reported
-         by Alexandru Damian <alexandru.damian@intel.com>
-
-                                   2/6
-                                   ---
-lib/sh/strtrans.c
-       - ansic_quote: fixed a bug when copying a printable character that
-         consumes more than one byte; byte counter was not being incremented.
-         Bug report from jidanni@jidanni.org
-
-                                   2/7
-                                   ---
-input.c
-       - getc_with_restart: if read(2) returns -1/EINTR and interrupt_state or
-         terminating_signal is set (which means QUIT; will longjmp out of this
-         function), make sure the local buffer variables are zeroed out to
-         avoid reading past the end of the buffer on the next call.  Bug report
-         from Dan Jacobson <jidanni@jidanni.org>
-
-                                   2/9
-                                   ---
-bashline.c
-       - command_word_completion_function: if a directory in $PATH contains
-         quote characters, we need to quote them before passing the candidate
-         path to rl_filename_completion_function, which performs dequoting on
-         the pathname it's passed.  Fixes bug reported by Ilyushkin Nikita
-         <ilyushkeane@gmail.com>
-
-                                  2/11
-                                  ----
-parse.y
-       - xparse_dolparen: save and restore shell_eof_token around call to
-         parse_string, intead of just leaving it set to ')'
-       - shell_getc: when -v is set, only print the command line when
-         shell_eof_token is 0, so we don't print it multiple times when
-         recursively entering the parser to parse $(...) commands.  Fixes
-         bug reported by Greg Wooledge <wooledg@eeg.ccf.org>
-
-[changed release status to 4.3-release]
-
-                                  2/13
-                                  ----
-lib/sh/strtrans.c
-       - ansic_quote: handle case where mbrtowc reports that the multibyte
-         sequence is incomplete or invalid.  Fixes bug reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  2/14
-                                  ----
-variables.c
-       - find_variable_nameref_context: fix a problem that caused the loop
-         to go one context too close to the global context.  In some cases,
-         simple variable assignment would set a variable in the global
-         context instead of a local context.  Bug report from
-         Geir Hauge <geir.hauge@gmail.com>
-
-                                  2/26
-                                  ----
-[bash-4.3 released]
-
-                                  2/27
-                                  ----
-aclocal.m4
-       - broken wcwidth check: fix typo reported by David Michael
-         <fedora.dm0@gmail.com>
-
-                                  2/28
-                                  ----
-support/bashbug.sh
-       - add ${BUGADDR} to error message printed if sending mail fails
-
-trap.c
-       - _run_trap_internal: don't call {save,restore}_pipeline if running
-         DEBUG trap; run_debug_trap calls them itself.  Fixes bug reported
-         by Moe Tunes <moetunes42@gmail.com>
-
-test.c
-       - unary_test: fix 'R' case by using find_variable_noref instead of
-         find_variable
-       - test_unop: add back missing 'R' case.  Fixes bug reported by
-         NBaH <nbah@sfr.fr>
-
-                                   3/2
-                                   ---
-jobs.c
-       - end_job_control: if job control is active, we changed the terminal's
-         process group, so make sure we restore it.  Fixes bug reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                   3/7
-                                   ---
-pcomplete.c
-       - pcomp_curtxt: new variable, holds the original text to be completed
-         as passed to the programmable completion code
-       - pcomp_filename_completion_function: if we are running compgen
-         (presumably in a shell function completion) and performing readline
-         completion, check the word being completed.  If it's not empty, but
-         the original word passed to the programmable completion code is an
-         empty string (""), call a dequoting function if one is available.
-         This compensates for an assumption in bash-completion.  Reported by
-         Albert Shih <Albert.Shih@obspm.fr>
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: when deciding whether or not to set vi mode's
-         idea of the last command, use whether or not the dispatching keymap
-         is vi_movement_keymap instead of the key sequence length.  The `c',
-         `d', and `y' commands all take motion commands as `arguments' and
-         will produce key sequences longer than 1 character.  The arrow keys
-         will end up dispatching out of a different keymap, so the test will
-         prevent arrow keys from setting the last command (the problem in
-         bash-4.2). Bug report from Daan van Rossum <daan@flash.uchicago.edu>
-
-lib/readline/vi_mode.c
-       - _rl_vi_motion_command: convenience function to test whether a key is
-         a vi-mode motion command
-
-lib/readline/rlprivate.h
-       - _rl_vi_motion_command: extern declaration
-
-parse.y
-       - parse_matched_pair: we should not skip processing single quotes in
-         posix mode if dolbrace_state == DOLBRACE_QUOTE2 (pattern
-         substitution).  Fixes bug reported by David Sines
-         <dave.gma@googlemail.com>
-
-                                  3/10
-                                  ----
-lib/readline/readline.c
-       - _rl_dispatch_callback: treat a return value of -1 as the end of
-         a command dispatch sequence if the current context doesn't
-         indicate that we're reading a multi-key sequence
-         ((cxt->flags & KSEQ_SUBSEQ) == 0).  Turn off the multikey flag
-         and free the context chain in this case.  Fixes one bug reported
-         by Felix Yan <felixonmars@gmail.com> to bug-readline list
-       - _rl_dispatch_callback: treat a return value of > 0 the same as 0
-         and return from the function, since only values < 0 cause us to
-         simulate recursion.  Rest of fix for bug tracked down by
-         Anatol Pomozov <anatol.pomozov@gmail.com>
-
-                                  3/11
-                                  ----
-
-execute_cmd.c
-       - execute_in_subshell: if a longjmp occurs, set result to
-         EXECUTION_FAILURE only if last_command_exit_value == EXECUTION_SUCCESS;
-         use value of last_command_exit_value otherwise.  Fixes cosmetic
-         issue reported by Dennis Lambe Jr. <malsyned@malsyned.net>
-
-doc/bash.1
-       - shell-kill-word and shell-backward-kill-word should be documented
-         as unbound by default.  Report from Oliver Hartley
-         <ohartley@talktalk.net>
-
-trap.c
-       - run_pending_traps: save value of $? before running trap commands in
-         trap_saved_exit_value, like run_exit_trap
-       - _run_trap_internal: save value of $? before running trap commands in
-         trap_saved_exit_value, like run_exit_trap
-
-builtins/common.c
-       - get_exitstat: when running `return' in a trap action, and it is not
-         supplied an argument, use the saved exit status in
-         trap_saved_exit_value.  Fixes Posix problem reported by
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  3/13
-                                  ----
-lib/sh/shquote.c
-       - sh_contains_quotes: new function, returns true if a given string
-         contains any of the shell quote characters (single quote, double
-         quote, or backslash)
-
-externs.h
-       - sh_contains_quotes: new extern declaration
-
-pcomplete.c
-       - pcomp_filename_completion_function: more changes for the benefit of
-         bash-completion: if the argument is not the same as the original
-         argument passed to the programmable completion code (pcomp_curtxt),
-         and we are being run by compgen as part of a completion, dequote the
-         argument as bash-completion expects.  Fix for the complete-word-
-         with-quoted-special-chars problem with bash-completion
-
-                                  3/17
-                                  ----
-execute_cmd.c
-       - execute_intern_function: when in posix mode, make defining a function
-         with the same name as a special builtin a fatal error only when the
-         shell is not interactive. Interactive shells display an error
-         message and go on.  From a discussion with Doug McIlroy
-         <doug@cs.dartmouth.edu>
-
-                                  3/18
-                                  ----
-arrayfunc.c
-       - assign_compound_array_list: when using expand_assignment_string_to_string
-         to expand the value in a ( [x]=y ) compound assignment, make sure
-         that we convert 0x0 to "" when expanding [x]= so it doesn't appear as
-         if the index is unset.  Fixes bug reported by Geir Hauge
-         <geir.hauge@gmail.com>
-
-builtins/common.c
-       - get_exitstat: update fix of 3/11 to allow the DEBUG trap to use the
-         current value of $? instead of the value it had before the trap
-         action was run.  This is one reason the DEBUG trap exists, and
-         extended debug mode uses it.  Might want to do this only in Posix
-         mode
-
-doc/{bash.1,bashref.texi}
-       - return: add language cribbed from Posix saying what happens when
-         return is run without an argument from a trap, including the DEBUG
-         trap exception
-
-                                  3/19
-                                  ----
-lib/glob/gmisc.c
-       - extglob_pattern_p: make sure ?(patlist) is flagged as an extglob
-         pattern
-
-lib/glob/glob.c
-       - extglob_skipname: rewrite to handle patterns that begin but do not
-         end with an extglob pattern; change test for easy case and loop
-         through patterns accordingly.  Fixes problem with matching filenames
-         with a leading dot reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-       - wextglob_skipname: make analogous changes
-
-                                  3/20
-                                  ----
-Makefile.in
-       - pass -DDEBUG down to builds in readline and history directories
-
-lib/readline/util.c
-       - _rl_trace and related functions are now only compiled in if DEBUG
-         is defined
-
-lib/readline/Makefile.in
-       - substitute @DEBUG@ and pass -DDEBUG, if necessary, to compilation
-         in LOCAL_CFLAGS
-
-                                  3/21
-                                  ----
-parse.y
-       - shell_getc: when checking whether or not to reallocate
-         shell_input_line to add trailing newline, don't try to subtract from
-         shell_input_line_size.  size_t is unsigned, so if its value is less
-         than 3 (like, say, 2), size-3 is a very large number and the string
-         will not be reallocated.  Use len+3 > size instead of len > size-3.
-         Fixes bug reported in
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1295467
-
-                                  3/27
-                                  ----
-lib/readline/display.c
-       - _rl_clean_up_for_exit: don't bother to call _rl_move_vert to whatever
-         readline thinks the last displayed line is if it's 0.  Two reasons: a
-         minor optimization, and it protects against unwanted moving if this
-         function is called twice, as it is when ^C is pressed.  Fixes bug
-         reported by Egmont Koblinger <egmont@gmail.com>
-
-                                  3/28
-                                  ----
-bashline.c
-       - invalid_completion: new function, used to identify attempts to
-         complete words that are syntax errors
-       - attempt_shell_completion: if invalid_completion returns true for a
-         word in a command position, punt on all completions.  Fixes cosmetic
-         issue reported by Uwe Storbeck <uwe@ibr.ch>
-       - attempt_shell_completion: add clause so that in_command_position
-         remains set to 1 for an empty word following a command separator like
-         (, &, or |
-
-lib/readline/kill.c
-       - rl_yank, rl_yank_nth_arg_internal: don't return -1 from bindable
-         functions, return 1 instead
-
-lib/readline/text.c
-       - rl_rubout, _rl_rubout_char, rl_delete, rl_change_case,
-         rl_transpose_chars, rl_transpose_words, _rl_set_mark_at_pos,
-         rl_exchange_point_and_mark, _rl_insert_next, _rl_char_search,
-         _rl_char_search_internal:
-         don't return -1 from bindable functions, return 1 instead
-
-lib/readline/vi_mode.c
-       - rl_vi_end_word, rl_vi_rubout, rl_vi_delete, rl_vi_char_search,
-         rl_vi_match, _rl_vi_set_mark, _rl_vi_goto_mark:
-         don't return -1 from bindable functions, return 1 instead
-
-lib/readline/macro.c
-       - rl_start_kbd_macro, rl_end_kbd_macro:
-         don't return -1 from bindable functions, return 1 instead
-
-builtins/setattr.def
-       - set_var_attribute: honor setting of no_invisible_vars when setting
-         att_invisible on a variable
-       - include "../flags.h" for no_invisible_vars
-
-builtins/declare.def
-       - declare_internal: honor setting of no_invisible_vars when setting
-         att_invisible on a variable
-       - include "../flags.h" for no_invisible_vars
-
-Makefile.in,builtins/Makefile.in
-       - make sure declare.o and setattr.o depend on flags.h
-
-execute_cmd.c
-       - decpoint: new function, returns locale's decimal point or `.' default
-       - mkfmt: use decpoint() to get decimal point instead of unconditionally
-         using `.'.  Fixes bug reported by Andrey Tataranovich
-         <tataranovich@gmail.com> in debian bug 741669
-
-                                  4/10
-                                  ----
-lib/readline/rltypedefs.h
-       - add back old Function/VFunction/etc typedefs, since other packages
-         (python, samba) use them. Mark as deprecated using gcc and clang
-         attributes.  Report and fix from Max Horn <max@quendi.de>
-
-                                  4/14
-                                  ----
-jobs.c
-       - run_sigchld_trap: unwind-protect value of this_shell_builtin, since
-         it matters in some cases whether or not we are running `wait' or
-         `eval'.  Fixes bug reported by Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-                                  4/18
-                                  ----
-shell.h
-       - sh_parser_state_t: add `need_here_doc' flags member, since
-         xparse_dolparen (via parse_command) sets it to 0
-
-parse.y
-       - gather_here_documents: make sure need_here_doc is > 0, since we
-         don't want to just decrement it forever if it ends up < 0. Partial
-         fix for bug reported by Jared Yanovich <slovichon@gmail.com>
-       - {save,restore}_parser_state: save and restore need_here_doc flag.
-         Rest of fix for bug reported by Jared Yanovich <slovichon@gmail.com>
-
-                                  4/19
-                                  ----
-subst.c
-       - cond_expand_word: since we are not supposed to be performing word
-         splitting here, set expand_no_split_dollar_star to 1 in addition to
-         setting W_NOSPLIT2
-       - expand_word_internal: if we have a case where we have an unquoted
-         $@ but we are in a case where we don't want to split (W_NOSPLIT2),
-         make sure we return a list consisting of a single word with the
-         arguments separated by spaces and don't do word splitting.  Fixes
-         bug reported by Greg Wooledge <wooledg@eeg.ccf.org> from an IRC
-         discussion
-
-builtins/hash.def
-       - print_portable_hash_info: single-quote pathnames and hashed filenames
-         that contain shell metacharacters.  Fixes bug reported by
-         <g1pi@libero.it> in debian bash bug #739853
-
-                                  4/20
-                                  ----
-lib/readline/display.c
-       - When using horizontal scrolling, the redisplay code erases too much
-         of the line containing successful results, so make sure we only
-         erase to the end of the line after making sure we move the cursor
-         to the end.  Fixes bug reported by <Trond.Endrestol@ximalas.info>
-
-                                  4/23
-                                  ----
-{bashhist,bashline}.c
-builtins{bind,help,type}.def
-lib/glob/glob.c, lib/intl/{loadmsgcat,localealias}.c,lib/sh/mktime.c
-       - fixes to memory leaks uncovered by coverity scan
-
-                                  4/24
-                                  ----
-{bashhist,subst,redir,assoc,jobs,array,trap}.c
-lib/intl/l10flist.c
-builtins/complete.def
-       - fixes to memory leaks and other resource usage problems uncovered by
-         coverity scan
-
-redir.c
-       - do_redirection_internal: if dup2 fails (presumably because of a
-         resource limit), close the file descriptor we opened before returning
-         error
-
-                                  4/25
-                                  ----
-config-top.h
-       - DEFAULT_BASHRC: new define with the name of the default shell
-         startup file
-
-bashline.c
-       - bash_directory_completion_matches: don't dequote the directory name.
-         If rl_completion_found_quote is non-zero, readline will dequote the
-         filename itself.  Fixes bug reported by Clark Wang
-         <dearvoid@gmail.com>
-
-                                  4/27
-                                  ----
-subst.c
-       - parameter_brace_expand_rhs: if parameter_brace_find_indir returns
-         NULL or "", or if it returns something that is not a valid identifier,
-         report an error and return &expand_wdesc_error so the error can
-         propagate up.  Fixes bug reported by Andre Holzhey
-         <andre.holzhey@gmx.de>
-
-                                  4/29
-                                  ----
-subst.c
-       - parameter_brace_substring: don't short-circuit right away if the
-         value is NULL but we are looking at the positional parameters.  Part
-         of fix for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-       - pos_params: if there are no positional parameters, only short-circuit
-         if we are looking for $1 and above.  Rest of fix for bug reported
-         by Pierre Gaston <pierre.gaston@gmail.com>
-
-subst.h
-       - SD_NOPROCSUB: new flag for skip_to_delim, means to not allow any
-         process subsitutions (should not have overloaded SD_NOSKIPCMD)
-
-subst.c
-       - skip_to_delim: honor SD_NOPROCSUB flag
-
-make_cmd.c
-       - make_arith_for_expr: set W_NOPROCSUB flag in the created word
-       - make_arith_for_command: set SD_NOPROCSUB in the flags argument to
-         skip_to_delim so we don't treat <( or >( as a process substitution
-         (we won't evaluate them in eval_arith_for_expr anyway).  Fixes
-         bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-
-                                   5/1
-                                   ---
-lib/glob/gmisc.c
-       - glob_dirscan: new function, takes a pattern and a directory separator
-         argument and advances the pattern to the last occurrence of the
-         separator. Like strrchr, but understands extended glob patterns and
-         uses glob_patscan to skip over them
-
-lib/glob/glob.c
-       - extglob_skipname: if the extended globbing pattern is invalid, don't
-         skip the name
-       - glob_filename: if there is a slash in the pattern to be matched, and
-         extglob is enabled, use glob_dirscan to find the real last occurrence
-         of `/' to avoid being confused by slashes in extglob patterns.  Fix
-         for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
-
-                                   5/6
-                                   ---
-variables.c
-       - make_local_variable: only set the att_invisible attribute if
-         no_invisible_vars isn't set
-       - find_variable_for_assignment: new function, intended to be called by
-         code that eventually wants to assign a value to the variable; will not
-         skip invisible variables; currently identical to find_variable
-       - find_variable_no_invisible: new function, finds the first visible
-         instance of variable with a given name in the variable context chain;
-         eventually will be used to replace find_variable; separate right now
-         for testing
-
-variables.h
-       - find_variable_for_assignment: extern declaration
-       - find_variable_no_invisible: extern declaration
-
-                                   5/7
-                                   ---
-variables.c
-       - make_local_variable: don't clear `invisible' attribute if we are
-         returning an existing local variable at the right context.  Let the
-         upper layers do that. Fixes bug reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                   5/8
-                                   ---
-lib/readline/input.c
-       - rl_getc: call RL_CHECK_SIGNALS if a read(2) is interrupted (-1/EINTR)
-         by SIGALRM or SIGVTALRM (placeholder for non-keyboard-generated
-         signals of interest)
-
-builtins/read.def
-       - edit_line: call bashline_set_event_hook and
-         bashline_reset_event_hook around call to readline(), so the right
-         signal handling happens
-       - read_builtin: make sure we add an unwind_protect call to
-         bashline_reset_event_hook.  These changes fix bug reported in
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
-
-bashline.c
-       - bash_event_hook: make sure we clean up the readline state by calling
-         rl_cleanup_after_signal if sigalrm_seen is non-zero.  The read builtin
-         sets this when it times out
-
-                                  5/12
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify language to make it clear that changing attributes of a
-         nameref variable (e.g., export), actually changes the attributes of
-         the referenced variable.  Fixes omission noted by Jeff Haemer
-         <jeffrey.haemer@gmail.com>
-
-arrayfunc.c
-       - bind_array_var_internal: make sure ENTRY no longer has invisible
-         attribute before returning.  Fixes bug reported by Geir Hauge
-         <geir.hauge@gmail.com>
-
-                                  5/22
-                                  ----
-execute_cmd.c
-       - shell_execve: if execve fails and we return 127 or 126, make sure to
-         set last_command_exit_value if a call to file_error or report_error
-         causes the shell to exit.  This ensures that the shell exits with
-         the right value.
-
-                                   6/6
-                                   ---
-shell.c
-       - drop_priv_mode: print an error message on setuid() failure, optionally
-         exit if errno == EAGAIN, as it can be on Linux when RLIMIT_NPROC for
-         the target user is exceeded.
-
-config-top.h
-       - EXIT_ON_SETUID_FAILURE: new settable define, will cause the shell to
-         exit if setuid fails with errno == EAGAIN
-
-                                  6/10
-                                  ----
-parse.y
-       - time_command_acceptable: fix so time is accepted everywhere the
-         grammar is looking for a `compound_list'.  Fixes bug reported by
-         Dale Worley <worley@alum.mit.edu>
-
-                                  6/12
-                                  ----
-subst.c
-       - clear_fifo_list: new function, clears FDs associated with open pipes
-         in current FIFO list without closing the file descriptors.  Can
-         possibly be used when shell_execve fails and the shell jumps back
-         to top_level and we don't want the shell to close the open FIFOs
-         each time through the read-execute loop.  Bug reported by Harald
-         Koenig <koenig@tat.physik.uni-tuebingen.de>
-
-
-                                  6/16
-                                  ----
-builtins/shopt.def
-       - compat42: make sure the `compat42' option sets the correct variable
-         for compatibility level.  Fixes bug reported by Ondrej Oprala
-         <ooprala@redhat.com>
-
-support/bashbug.sh
-       - fix typo when echoing $USAGE.  Report from Shantanu Kulkarni
-         <djbware@shantanukulkarni.org>
-
-execute_cmd.c
-       - shell_execve: before longjmp back to subshell_top_level, clear out the
-         FIFO fd list by calling clear_fifo_list so the FDs (which we inherited
-         from our parent) aren't closed every time through the read-eval loop.
-         Fix for bug reported by Harald Koenig <koenig@tat.physik.uni-tuebingen.de>
-
-                                  6/18
-                                  ----
-subst.c
-       - extract_process_subst: add additional argument: xflags, allow callers to
-         pass flags like extract_command_subst
-       - extract_process_subst: call xparse_dolparen like command substitution
-         to avoid problems when parsing commands constructs with embedded open
-         parens.  Fixes bug reported by Tim Friske <me@timfriske.com>
-
-subst.h
-       - extract_process_subst: modified prototype for extern declaration
-
-                                  6/19
-                                  ----
-execute_cmd.c
-       - execute_pipeline: if running with lastpipe enabled, make sure that we
-         check whether or not the job id is valid using INVALID_JOB before
-         calling job_exit_status. the jobs list can get frozen and unfrozen in
-         the presence of nested pipelines and loops and wait_for can clear a
-         job table entry.  Fixes bug reported by <scorp.dev.null@gmail.com>
-
-jobs.c
-       - freeze_jobs_list: now returns old value of jobs_list_frozen; unused at
-         current time
-
-jobs.h
-       - freeze_jobs_list: change return value
-
-                                  6/20
-                                  ----
-lib/glob/smatch.c
-       - MEMCHR: single-byte and wide character defines (memchr/wmemchr)
-
-lib/glob/sm_loop.c
-       - GMATCH: when the wildcards are the last element of the pattern, make
-         sure they do not match a string containing a `/' if FNM_PATHNAME is
-         set in FLAGS
-       - GMATCH: when recursively calling GMATCH after we see a `*', don't
-         try to consume the rest of the pattern with `*' if FNM_PATHNAME is
-         set in FLAGS, just consume up to the next slash and then see whether
-         or not the rest of the pattern matches.  Fixes bug reported by Ian
-         Kelling <ian@iankelling.org>
-       - GMATCH: when processing `*' in the pattern, after skipping consecutive
-         wildcards, if we hit a literal `/' in the pattern and we're looking
-         for a pathname, skip characters in the string until we find a `/'
-         (no slash means the match fails), and try to match the rest of the
-         pattern against the portion of the string after the next `/'.  Picked
-         up from gnulib/glibc
-
-pathexp.c
-       - split_ignorespec: since split_ignorespec gets globbing patterns,
-         make sure we call skip_to_delim with the SD_GLOB flag so delimiters
-         that occur within bracket expressions don't delimit the pattern.
-         Fixes problem with [[:digit:]] in GLOBIGNORE reported by Ian Kelling
-         <ian@iankelling.org>
-
-unwind_prot.c
-       - unwind_protect_tag_on_stack: new function, returns 1 if unwind-protect
-         frame corresponding to `tag' argument is on unwind-protect stack
-
-unwind_prot.h
-       - unwind_protect_tag_on_stack: extern declaration
-
-                                  6/30
-                                  ----
-lib/readline/misc.c
-       - _rl_revert_all_lines: set entry->data to 0 after assigning it to
-         rl_undo_list to avoid pointer aliasing problems that would result
-         in entry->line being freed by an undo.  The subsequent free would
-         be a double free.  Report and fix from Jared Yanovich
-         <slovichon@gmail.com>
-
-subst.c
-       - command_substitute: other shells do not appear to inherit the -v
-         option when reading and executing command substitutions.  Reported
-         by Ondrej Oprala <ooprala@redhat.com>
-
-                                   7/1
-                                   ---
-config-top.h
-       - CHECKHASH_DEFAULT: new define that supplies the default value for
-         check_hashed_filenames (`checkhash' shopt option); still 0 by default
-
-findcmd.c
-       - check_hashed_filenames: initialize using CHECKHASH_DEFAULT
-
-lib/readline/histexpand.c
-       - history_expand: double quotes can inhibit recognition of the history
-         comment character if history_quotes_inhibit_expansion is non-zero
-
-lib/readline/doc/{history.3,hstech.texi}
-       - history_quotes_inhibit_expansion: expand definition to note that it
-         inhibits scanning for the history comment character as well; correct
-         typo to make it clear that it only works on double-quoted strings
-
-lib/sh/zgetline.c
-       - add new fourth argument: DELIM, allows delimiter to be something
-         other than newline (if DELIM != '\n', UNBUFFERED_READ should be
-         non-zero)
-       - UNBUFFERED_READ is now fifth argument
-       - check character against DELIM rather than strictly newline
-
-externs.h
-       - zgetline: change function prototype for extern declaration
-
-builtins/mapfile.def
-       - mapfile: change calling sequence for zgetline calls
-       - mapfile_builtin: new -d option: DELIM, like in read builtin
-       - mapfile_builtin: pass `delim' to mapfile() as new argument; default
-         to '\n' unless -d option supplied
-       - mapfile: take new DELIM argument, pass to zgetline
-       - mapfile: if DELIM != '\n', set unbuffered_read to 1
-
-doc/{bash.1,bashref.texi}
-       - mapfile: document new `-d DELIM' option
-
-                                   7/5
-                                   ---
-lib/readline/histfile.c
-       - history_truncate_file: if there is an error writing the truncated
-         history list back to the history file, use the same strategy as
-         history_do_write: create a backup file, rename the history file to
-         the backup file, and restore the original history file from the
-         backup file name if the write or the close fails.  Suggestion from
-         Chen Gang <gang.chen.5i5j@gmail.com> to bug-readline
-
-execute_cmd.c
-       - evalnest, evalnest_max: new variables establishing maximum number of
-         recursive `eval' calls; current max is 4096
-       - execute_builtin: unwind-protect value of evalnest around calls to
-         eval builtin. Suggested by Oliver Morais <oliver.morais@gmail.com>
-       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
-         evalnest to 0 in a subshell
-
-builtins/setattr.def
-       - show_name_attributes: show a variable's attributes even if it's
-         invisible (don't show any value since it has none). This means that
-         declare -p var will display VAR's attributes even when var marked
-         as invisible.  Feature request from Peggy Russell
-         <prusselltechgroup@gmail.com>
-       - show_var_attributes: don't print assignment if array or assoc
-         attribute is set but variable marked as invisible
-
-tests/array.right
-       - special note: changed all declare -a output tests because the shell
-         will no longer print out values for invisible array variables. This
-         is a change, but one for correctness:
-
-               declare -a foo='()'
-         and
-               declare -a foo
-         are not equivalent
-
-                                  7/22
-                                  ----
-subst.c
-       - parameter_brace_expand: after calling parameter_brace_expand_indir,
-         turn off the W_ARRAYIND flag in the word it returns, because there
-         is no way for it to return the index that should be used, and the
-         rest of the function assumes that IND is valid if W_ARRAYIND is set.
-         Fixes bug reported by Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
-
-                                   8/2
-                                   ---
-parse.y
-       - read_token_word: if we read a character that will end a command
-         substitution, don't skip over quoted newlines when we read an
-         additional character to figure out whether it's a two-character
-         token. This lets the higher layers deal with quoted newlines after
-         the command substitution. Fixes bug reported by EmanueL Czirai
-         <amanual@riseup.net>
-
-                                  8/11
-                                  ----
-execute_cmd.c
-       - execute_pipeline: check whether lastpipe_jid corresponds to a valid
-         job before calling append_process, for the same reason as fix from
-         6/19.  Fixes bug reported by <lolilolicon@gmail.com>
-
-                                  8/12
-                                  ----
-lib/sh/unicode.c
-       - stub_charset: use strncpy instead of strcpy because we are copying
-         into a local fixed-length buffer.  Fixes vulnerability reported by
-         <romerox.adrian@gmail.com>
-
-execute_cmd.c
-       - execute_pipeline: if we don't call append_process, call
-         wait_for_single_pid to get the status of `lastpid', since that will
-         check the status of already-reaped processes.  Fixes spurious error
-         message about non-existent process from fix of 8/11
-
-                                  8/15
-                                  ----
-jobs.c
-       - running_in_background: new variable, keeps track of whether or not we
-         are running in the background (not perfect yet)
-       - initialize_job_control: even if we are not turning on job control,
-         get the terminal pgrp so we can use it later
-       - {set_job_control,initialize_job_control}: set running_in_background
-         to 1 if terminal pgrp != shell pgrp
-       - {stop_pipeline,make_child,wait_for}: if we are running in the
-         background, don't mess with the terminal's process group; assume that
-         the parent shell will do that.  Fixes bug reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-shell.c
-       - shell_reinitialize: reset running_in_background back to 0
-
-                                  8/24
-                                  ----
-execute_cmd.c
-       - {execute_connection,execute_command_internal}: make sure that
-         asynchronous commands always set $? to 0 and are not affected by the
-         command's exit status being inverted using `!'.  Fixes bug reported
-         by Vincent Lefevre <vincent@vinc17.net>
-
-lib/readline/display.c
-       - rl_message: call vsnprintf with full msg_bufsiz, since it counts 
-         one fewer than the buffer length passed as an argument.  Bug report
-         and fix from Dylan Cali <calid1984@gmail.com>
-
-                                  8/26
-                                  ----
-builtins/evalstring.c
-       - evalstring: if CURRENT_TOKEN == yacc_EOF, reset it to newline.  This
-         is instead of calling reset_parser(); that might still be needed.
-         Fixes bug with eval and a subsequent statement ending with EOF
-         reported by <jim.avera@gmail.org>
-
-pcomplete.c
-       - filter_stringlist: when extglob is on, a leading ! in the filter
-         pattern should be left alone when it introduces a !(pat) pattern;
-         otherwise it messes up the pattern.  Fixes bug reported by David
-         Korn <dgkorn@gmail.com>
-
-                                  8/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - clarify the behavior of bash when given the -c option, since $0 is
-         technically not a positional parameter.  Bug reported by Stephane
-         Chazelas <stephane.chazelas@gmail.com>
-
-                                  8/28
-                                  ----
-lib/readline/history.c
-       - add_history: use history_max_entries (if history is stifled) or
-         DEFAULT_HISTORY_INITIAL_SIZE if not (new define, defaults to 502)
-         to size the initial allocation of the history array.  Assumption
-         is that this will reduce the number of allocations
-
-                                  8/29
-                                  ----
-execute_command.c:
-       - sourcenest, sourcenest_max: new variables used to track level of
-         sourced files and (maybe) one day catch infinite source recursion
-       - execute_builtin: if current source level exceeds sourcenest_max,
-         trigger an error and jump back to the top level
-       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
-         sourcenest to 0 in a subshell
-
-                                   9/2
-                                   ---
-variables.c
-       - bind_variable: if a nameref expands to an array reference, make
-         sure that assign_array_element gets called (maybe even
-         recursively) instead of bind_variable_internal, so invalid variable
-         names (like arr[0]) don't get created.  Fixes bug reported by
-         <lolilolicon@gmail.com>
-
-                                   9/3
-                                   ---
-execute_cmd.c
-       - evalnest_max,sourcenest_max: initialize from EVALNEST_MAX and
-         SOURCENEST_MAX, respectively.  Feature suggested by
-         <bogun.dmitriy@gmail.com>
-
-config-top.h
-       - define EVALNEST_MAX and SOURCENEST_MAX to 0
-
-                                   9/6
-                                   ---
-bashline.c
-       - find_cmd_start: fix to (crudely) deal with >| token; even though
-         skip_to_delim finds `|' as a delimiter, we call it again and use
-         what the second call finds.  Fixes bug reported by Dan Jacobson
-         <jidanni@jidanni.org>
-
-findcmd.c
-       - find_in_path_element: if in posix mode, do not expand a literal
-         tilde in a $PATH element
-
-doc/bashref.texi
-       - add change to tilde expansion in $PATH elements to posix mode
-         description
-
-builtins/common.h
-       - ISHELP: new define for builtins that do their own option parsing
-         and don't use internal_getopt(); checks whether argument is --help
-       - CHECK_HELPOPT: convenience define to help builtins that do their
-         own option parsing to check for --help with one line of code
-       - CASE_HELPOPT: convenience define to help builtins that use
-         internal_getopt() check for --help with one line of code
-
-builtins/help.def
-       - builtin_help: new function, prints out --help output for current
-         builtin
-
-builtins/{kill,let,pushd}.def
-       - add CHECK_HELPOPT to builtins that use ISOPTION; call builtin_help
-         and return EX_USAGE (kill/let/pushd/popd/dirs)
-
-builtins/{caller,fg_bg}.def
-       - use CHECK_HELPOPT to recognize --help, since these builtins perform
-         checks that can cause them to return before calling no_options
-         (caller/fg/bg)
-
-builtins/{exit,return}.def
-       - use CHECK_HELPOPT to recognize --help before calling get_exitstat()
-         (return/exit/logout)
-
-builtins/{break,shift}.def
-       - use CHECK_HELPOPT to recognize --help before any other checks
-         (break/continue/shift)
-
-builtins/bashgetopt.h
-       - GETOPT_EOF: convenience define
-       - GETOPT_HELP: new define, to indicate internal_getopt saw --help
-
-builtins/bashgetopt.c
-       - internal_getopt: return GETOPT_HELP for --help
-
-builtins/common.c
-       - no_options: recognize --help, call builtin_help and return 2
-         (builtin/eval/source/./times)
-
-builtins/command.def
-       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
-         (command)
-
-builtins/{colon,echo,test}.def
-       - do not recognize --help (:/true/false/echo/test)
-
-                                   9/8
-                                   ---
-sig.c
-       - termsig_sighandler: if readline is active now, set the bashline event
-         hook. Old code just set it for interactive shells.  Part of fix for
-         bug reported by <mickael9@gmail.com>
-
-bashline.c
-       - bash_event_hook: call rl_cleanup_after_signal if terminating_signal
-         is non-zero, since check_signals_and_traps() will cause the shell to
-         exit if it is and we want to clean up the readline state first.  Rest
-         of fix for bug reported by <mickael9@gmail.com>
-
-                                   9/9
-                                   ---
-jobs.c
-       - waitchld: when running the wait builtin in posix mode, with a trap set
-         on SIGCHLD, use queue_sigchld_trap instead of trap_handler (SIGCHLD),
-         otherwise you will lose SIGCHLDs when children_exited > 1.  Fixes bug
-         reported by <crispusfairbairn@gmail.com>
-
-builtins/read.def
-       - read_builtin: if we are changing the tty settings, call
-         initialize_terminating_signals so we have a chance to catch all
-         terminating signals and potentially clean up the terminal before
-         exiting
-       - read_builtin: tty_modified: new variable, set to 1 if we change the
-         terminal attributes and have to call ttyrestore() to restore them
-       - if one of the `reads' returns -1/EINTR due to a terminating signal,
-         and we have modified the terminal, call ttyrestore before calling
-         CHECK_TERMSIG
-       - ttyrestore: set tty_modified to 0 when called
-
-                                  9/10
-                                  ----
-builtins/read.def
-       - termsave: now global to file so other functions can use it
-       - read_tty_cleanup: if tty_modified is non-zero, call ttycleanup to
-         restore old terminal settings and turn off tty_modified
-
-sig.c
-       - termsig_handler: call read_tty_cleanup if currently executing read
-         builtin; it does the right thing.  Final piece of fix for bug reported
-         by Jan Rome <jan.rome@gmail.com>
-
-                                  9/11
-                                  ----
-general.c
-       - printable_filename: general function to return a printable
-         representation of a string (presumed to be a filename)
-
-general.h
-       - extern declaration for printable_filename
-
-execute_cmd.c
-       - execute_disk_command: use printable_filename
-
-builtins/{bind,cd,enable,hash,source}.def
-       - use printable_filename as appropriate when printing error messages.
-         From a suggestion by Vincent Lefevre <vincent@vinc17.net>
-
-builtins/bind.def
-       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
-         (bind)
-
-                                  9/12
-                                  ----
-builtins/common.h
-       - SEVAL_FUNCDEF: new flag for parse_and_execute; it means that we only
-         accept a single function definition command, as when we are importing
-         functions from the environment
-       - SEVAL_ONECMD: new flag for parse_and_execute; for future use
-
-builtins/evalstring.c
-       - parse_and_execute: if the SEVAL_FUNCDEF flag is set, disallow anything
-         but a function definition command
-
-variables.c
-       - initialize_shell_variables: don't allow functions with invalid names
-         to be imported from the environment, even though we still allow them
-         to be defined
-       - initialize_shell_variables: when importing function definitions from
-         the environment, call parse_and_execute with the SEVAL_FUNCDEF flag
-         to force the command to be just a function definition
-
-subst.c
-       - param_expand: when expanding a $name variable expansion, make sure that
-         the variable is visible and set before following the nameref chain
-       - param_expand: when expanding a $name variable expansion and following the
-         nameref chain, make sure the resulting variable is visible and set
-         before using it
-
-                                  9/13
-                                  ----
-variables.c
-       - initialize_shell_variables: when importing function definitions from
-         environment, use SEVAL_ONECMD flag for parse_and_execute.  Part of
-         CVE-2014-6271
-
-builtins/evalstring.c
-       - parse_and_execute: if SEVAL_ONECMD flag set, return immediately after
-         calling execute_command_internal.  Final piece for fix for bug
-         reported by Stephane Chazelas <stephane.chazelas@gmail.com>.  Part of
-         CVE-2014-6271
-
-                                  9/24
-                                  ----
-parse.y
-       - reset_parser: reset eol_ungetc_lookahead to 0 here, since we don't want
-         shell_getc returning it on the next call.  Fixes problem reported by
-         Tavis Ormandy <taviso@cmpxchg8b.com> and Michal Zalewski
-         <lcamtuf@coredump.cx>.  Potentially part of CVE-2014-6271; fix for
-         CVE-2014-7169
-
-                                  9/25
-                                  ----
-parse.y
-       - push_heredoc: new function, pushes a here-doc redirection onto
-         redir_stack handling overflow of redir_stack. Exits on overflow.
-         Original fix from Florian Weimer <fweimer@redhat.com>.  Fix for
-         CVE-2014-7186
-       - change straight assignments to redir_stack to call push_redir
-       - add one to size of word_lineno stack to avoid off-by-one error
-         below in read_token_word. Overflow just results in line numbers
-         being wrong.  Fix for CVE-2014-7187
-
-                                  9/27
-                                  ----
-{execute_cmd,trap}.c
-       - changes to make minimal-config builds work again, mostly missing
-         #ifdefs for optional features
-
-builtins/common.c
-       - builtin_help: dummy version to be included if HELP_BUILTIN not
-         defined, for minimal-config builds
-
-variables.c
-       - initialize_shell_variables: incorporated patches from Florian
-         Weimer <fweimer@redhat.com> to change the strings bash looks
-         for when importing shell functions from the environment.  It
-         adds a prefix (BASH_FUNC_) and a suffix (%%) to the name to
-         mark it as having been created by bash as an exported function.
-         Fix for remote attacks part of CVE-2014-6271 and CVE-2014-7169
-       - mk_env_string: takes new argument, indicating whether we are
-         constructing a function
-       - mk_env_string: encodes function names as described above, so
-         initialize_shell_variables can find them
-
-                                  9/28
-                                  ----
-copy_cmd.c
-       - copy_redirects: before calling savestring on here_doc_eof, make
-         sure it's not NULL (it could have been the result of a here
-         document delimited by EOF or EOS).  Fixes bug reported by
-         Michal Zalewski <lcamtuf@coredump.cx>.  Fix for CVE-2014-6277
-
-make_cmd.c
-       - make_redirection: initialize here_doc_eof member to NULL.  Rest of
-         fix for CVE-2014-6277
-
-                                  9/29
-                                  ----
-parse.y
-       - current_input_line_state: return a sh_input_line_state_t containing
-         the current shell_input_line and its index and size variables
-
-shell.h
-       - current_input_line_state: extern declaration
-
-builtins/evalstring.c
-       - parse_and_execute: call reset_parser() before returning if
-         SEVAL_ONECMD set.  Fixes bug reported by Michal Zalewski
-         <lcamtuf@coredump.cx> and designated CVE-2014-6278
-       - parse_and_execute: if we parse a function definition when
-         SEVAL_FUNCDEF is set, but don't consume the entire passed string,
-         throw an error, reset the parser, and return.  Part of fix for
-         CVE-2014-6278
-       - parse_and_execute: if parsing the shell function definition when
-         SEVAL_FUNCDEF is set transforms the function name (e.g., if it
-         begins with a newline or begins or ends with whitespace), throw
-         an error, reset the parser, and return.  Fixes bug reported by
-         Eric Kobrin <ekobrin@akamai.com>
-
-                                  10/2
-                                  ----
-jobs.c
-       - bgp_prune: don't do anything if bgpids.npid == 0 or
-         bgpids.list == NULL.  This can happen if something gets run before
-         the job control framework is initialized.  Bug report from
-         <mancha1@zoho.com>
-
-                                  10/3
-                                  ----
-parse.y
-       - xparse_dolparen: don't set token_to_read to newline after calling
-         parse_string() and cleaning up when the shell is not interactive.  This
-         makes the parser think it's ok to read new commands even if it's not in
-         a state where that should be possible.  Underlying fix for bug reported
-         by Michal Zalewski <lcamtuf@coredump.cx> and designated CVE-6278
-       - parser_remaining_input: new function, returns the portion of
-         shell_input_line that hasn't yet been read
-       - current_input_line_state: removed
-
-shell.h
-       - parser_remaining_input: extern declaration
-       - current_input_line_state: removed
-
-builtins/evalstring.c
-       - parse_and_execute: change code that checks whether parse_command has
-         consumed the entire passed string when SEVAL_FUNCDEF is used to use
-         parser_remaining_input instead of messing around with (new)
-         current_input_line_state.  Part of fix for CVE-2014-6278
-
-variables.c
-       - initialize_shell_variables: if we don't call parse_and_execute, free
-         the temporary string, since parse_and_execute won't.  Report and fix
-         from Eric Kobrin <ekobrin@akamai.com>
-
-                                  10/4
-                                  ----
-print_cmd.c
-       - print_function_def: when in posix mode, print shell function
-         definitions as posix specifies them, without the leading
-         `function' keyword
-
-general.c
-       - exportable_function_name: return 1 if the passed string can be
-         added to the environment as an exported function name.  Currently
-         prohibits function names containing  `/' and `=' from being
-         exported
-
-general.h
-       - exportable_function_name: extern declaration
-
-builtins/setattr.def
-       - set_or_show_attributes: if exporting a function with export -f,
-         call exportable_function_name to determine whether the function
-         should be exported; don't export function if it returns 0
-
-                                  10/7
-                                  ----
-builtins/setattr.def
-       - set_or_show_attributes: don't show identifiers that are invisible
-         and imported from the environment, since that combination of
-         attributes means that the imported variable is not a valid shell
-         identifier.  Report from Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  10/8
-                                  ----
-shell.c
-       - shell_initialize: set new variable should_be_restricted, which
-         says whether or not the shell will be a restricted one based on the
-         shell name; use in calls to initialize_shell_variables (to inhibit
-         importing shell functions) and initialize_shell_options (to inhibit
-         parsing $SHELLOPTS) and initialize_bashopts (to inhibit parsing
-         $BASHOPTS).  Report from <paulfm@umn.edu>
-
-                                  10/12
-                                  -----
-execute_cmd.c
-       - execute_function: unwind-protect loop_level, set loop_level to 0
-         when entering a function so break and continue in functions don't
-         break loops running outside of the function. Fix picked up from
-         dash via Herbert Xu <herbert@gnodor.apana.org.au>
-
-                                  10/13
-                                  -----
-doc/Makefile.in
-       - bashref.pdf: create using texi2dvi --pdf rather than postprocessing
-         the dvi file, so we have PDF bookmarks and links.  Fix from
-         Siep Kroonenberg <siepo@cybercomm.nl>
-
-                                  10/14
-                                  -----
-subst.h
-       - Q_ARITH: new quoting flag. Semantics are per Posix's spec for
-         arithmetic expansion: act as if string is quoted, but don't treat
-         double quotes specially (in this case, they will be removed by quote
-         removal)
-       - Q_ARRAYSUB: new quoting flag, indicates we are expanding an indexed
-         array subscript
-
-subst.c
-       - expand_arith_string: if we are not expanding the string, but we saw
-         a quote with Q_ARITH specified as one of quoting flags, perform
-         quote removal even if Q_DOUBLE_QUOTES is specified
-       - param_expand: change calls to expand_arith_string for $[ and $((
-         cases to specify Q_ARITH.  Now $(( "$x" )) and $(( "x" )) work if x
-         has a value that evaluates to a valid number, as Posix specifies
-       - expand_word_internal: add test for quoted&Q_ARITH to the tilde case,
-         so we continue to perform tilde expansion in arithmetic contexts
-       - expand_word_internal: if quoted&Q_ARITH, continue processing when we
-         see a `"', acting as if the double quote isn't present (already
-         Q_DOUBLE_QUOTED)
-
-arrayfunc.c
-       - array_expand_index: pass Q_DOUBLE_QUOTED|Q_ARITH|Q_ARRAYSUB as quoted
-         argument in call to expand_arith_string.  This inhibits word
-         splitting (Q_DOUBLE_QUOTED) while discarding double quotes (Q_ARITH),
-         identical to the quote flags passed while expanding $(( )) and $[ ].
-         Q_ARRAYSUB reserved for future use.  Fixes problem reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/16
-                                  -----
-subst.c
-       - parameter_brace_expand_word: if the PF_ASSIGNRHS flag is set and we
-         are expanding what looks like an array subscripted with @ or *,
-         make sure the variable we're expanding is actually an array before
-         we add Q_DOUBLE_QUOTES to the flags.  If we don't, things like
-         scalar[@] will remain quoted.  Fixes ubuntu bug 1381567
-         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1381567
-
-                                  10/17
-                                  -----
-{jobs,nojobs}.c
-       - get_original_tty_job_signals: get original signal dispostions for
-         SIGTSTP, SIGTTIN, SIGTTOU before we start manipulating them in
-         make_child
-       - default_tty_job_signals: make sure we set SIGTSTP, SIGTTIN, or
-         SIGTTOU to SIG_IGN if they were ignored at shell startup instead of
-         unconditionally setting them to SIG_DFL.  Fixes bug reported by
-         idallen@idallen.ca
-
-jobs.h
-       - get_original_tty_job_signals: extern declaration
-
-trap.c
-       - initialize_traps: add call to get_original_tty_job_signals
-
-                                  10/22
-                                  -----
-subst.c
-       - expand_string_for_rhs: when expanding in this context (rhs of a word
-         expansion or pattern removal), we don't perform word splitting, so
-         we don't want to split $* if IFS is empty.  Fixes bug reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  10/23
-                                  -----
-subst.c
-       - param_expand: when expanding $* in a pattern context where the
-         expansion is quoted (Q_PATQUOTE), don't quote the expansion --
-         the outer quotes don't make the characters in the expansion of
-         $* special.  Posix interp 221.  Reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  10/28
-                                  -----
-lib/readline/bind.c
-       - enable-bracketed-paste: new bindable variable, enables support for
-         a terminal's `bracketed paste mode'.  Code contributed by
-         Daniel Colascione <dancol@dancol.org>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - enable-bracketed-paste: add description
-
-lib/readline/{readline.c,rlprivate.h}
-       - _rl_enable_bracketed_paste: declarations
-       - #defines for use by bracketed paste implementation
-
-lib/readline/rltty.c
-       - rl_prep_terminal: send BRACK_PASTE_INIT string to terminal if we
-         are supposed to enable bracketed-paste mode; change terminal_prepped
-         to indicate we sent that string and need to clean up
-       - rl_deprep_terminal: if terminal_prepped indicates we sent the
-         bracketed-paste mode init string to the terminal, send the cleanup
-         string before restoring the terminal modes
-
-lib/readline/kill.c
-       - rl_bracketed_paste_begin: function to read bracketed paste until
-         BRACK_PASTE_SUFF; discard the suffix, and insert the rest of the
-         paste as a single (undoable) object.  Bound to BRACK_PASTE_PREF
-
-lib/readline/funmap.c
-       - bracketed-paste-begin: new bindable command, executes
-         rl_bracketed_paste_begin
-
-lib/readline/readline.c
-       - bind_bracketed_paste_prefix: new function, sets up to recognize
-         the bracketed paste prefix sequence (BRACK_PASTE_PREF) in emacs
-         keymap and vi insertion keymap
-       - readline_initialize_everything: call bind_bracketed_paste_prefix
-
-                                  11/1
-                                  ----
-builtins/ulimit.def
-       - RLIMIT_POSIXLOCKS: now synonym for RLIMIT_LOCKS
-       - -k: new option: RLIMIT_KQUEUES, max kqueues allocated for this
-         process
-       - -P: new option: RLIMIT_NPTS, max number of pseudoterminals available
-         to this process
-
-doc/{bash.1,bashref.texi}
-       - document `ulimit -k' option
-       - document `ulimit -P' option
-
-parse.y
-       - `timespec list_terminator' production: if the list terminator is `;'
-         set last_read_token to `;' to allow things like `time ; command' to
-         time null commands and not throw a syntax error.  Patch from
-         Piotr Grzybowski <narsil.pl@gmail.com>
-       - `BANG list_terminator' production: do the same thing
-
-variables.c
-       - sv_optind: use find_shell_variable and get_variable_value so we can
-         have the variable's context in the case we need to do something
-         when we are restoring a previous variable context's value
-
-builtins/getopt.h
-       - sh_getopt_state_t: struct to save sh_getopt's internal state so we
-         can restore it around function calls in the event that we have a
-         local copy of OPTIND
-
-builtins/getopt.[ch]
-       - sh_getopt_{save,restore}_istate: new functions to save and restore
-         getopt's internal state
-       - sh_getopt_{alloc,dispose}_istate: new functions to allocate and
-         deallocate sh_getopt_istate_t objects
-
-execute_cmd.c
-       - maybe_restore_getopt_state: restore sh_getopt state after executing
-         function body iff the funtion declared a local copy of OPTIND
-       - execute_function: save sh_getopt state before executing function body
-       - execute_function: note in getopt_state->flags whether or not the
-         function declared a local copy of OPTIND; used by
-         maybe_restore_getopt_state
-       - execute_function: maybe restore sh_getopt state before returning via
-         call to maybe_restore_getopt_state.  Fixes bugs with getopts and
-         state between calls reported in 2011 by Bernd Eggink
-         <monoped@sudrala.de> and in 2014 by Oyvind Hvidsten
-         <oyvind.hvidsten@dampir.no>
-
-configure.ac
-       - enable-function-import: new option, controls whether function imports
-         are included.  Enabled by default.  Patch from David Galos
-         <davegalos@google.com>
-
-config.h.in
-       - FUNCTION_IMPORT: define controlled by enable-function-import above
-
-variables.c
-       - initialize_shell_variables: include code to import function
-         definitions from the environment if FUNCTION_IMPORT is defined
-
-doc/bashref.texi
-       - --enable_function-import: document new configuration option
-
-                                  11/5
-                                  ----
-lib/readline/history.c
-       - history_lines_read_from_file: new variable, set by read_history and
-         read_history_range to the actual number of lines read from the
-         history file.  The value is valid immediately after a call to one
-         of those functions
-       - history_lines_written_to_file: new variable, set by write_history,
-         history_do_write, and history_truncate_file to the actual number of
-         lines written to the history file.  The value is valid immediately
-         after a call to one of those functions
-
-variables.c
-       - sv_histsize: set history_lines_in_file after history_truncate_file()
-         only if hmax < history_lines_in_file (lines we've already read); a
-         cosmetic change only
-
-bashhist.c
-       - load_history: set history_lines_in_file after read_history() from
-         history_lines_read_from_file, since read_history reads all of the
-         lines from the history file even if it's more than $HISTSIZE
-       - maybe_save_shell_history: after calling write_history(), set
-         history_lines_in_file to history_lines_written_to_file, since we
-         can assume that we read everyhing we just wrote
-
-builtins/history.def
-       - history_builtin: after calling read_history (history -r), set the
-         new value of history_lines_in_file, for the same reason as above
-       - history_builtin: after calling read_history_range (history -n), set
-         history_lines_in_file from history_lines_read_from_file
-
-                                  11/6
-                                  ----
-lib/readline/histfile.c
-       - history_truncate_file: since we move the old file to a backup copy
-         before truncating, make sure the new file is owned by the same uid
-         as the old
-       - history_do_write: use chown in the same way as history_truncate_file
-
-                                  11/12
-                                  -----
-lib/readline/display.c
-       - expand_prompt: takes a new `flags' argument; only one flag defined
-         so far: PMT_MULTILINE
-       - expand_prompt: changed all callers to add new flags argument
-       - rl_expand_prompt, redraw_prompt: make sure to set PMT_MULTILINE in
-         FLAGS argument to expand_prompt if expanding parts of a prompt
-         containing embedded newlines
-       - expand_prompt: only add mode char to last line of a prompt with
-         embedded newlines, so mode indicator doesn't get lost and gets
-         updated properly.  Fixes problem reported by Renlin Li
-         <lirenlin@gmail.com>
-
-                                  11/13
-                                  -----
-
-lib/readline/display.c
-       - prompt_modestr: changed prompt_modechar to return a string denoting
-         the editing mode; default strings for emacs and both vi modes are
-         #defines in this file.  prompt_modestr takes an argument in which
-         it returns the length of the mode string
-       - expand_prompt: if expanding mode strings in the prompt, get the
-         mode string to use and add it at the beginning of the prompt string,
-         before expanding it.  This will allow future work allowing the mode
-         string to contain invisible characters
-
-                                  11/15
-                                  -----
-lib/readline/rlprivate.h
-       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: extern declarations for
-         variables to hold current values of user-settable mode strings;
-         variables to hold lengths 
-
-lib/readline/rlconf.h
-       - defines for default values of the mode strings for each editing mode
-         and keymap
-
-lib/readline/display.c
-       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: new variables to hold values of
-         user-settable mode strings
-       - _rl_{emacs,vi_cmd,vi_ins}_modestr_len: new variables to hold lengths
-         of corresponding mode string variables
-       - prompt_modestr: return appropriate user-settable mode string
-         variables
-
-lib/readline/bind.c
-       - {emacs,vi-ins,vi-cmd}-mode-string: new user-settable mode string
-         variables
-       - sv_{emacs,viins,vicmd}_modestr: variable handling functions for user-
-         settable mode string variables. Non-null values are run through
-         rl_translate_keyseq so users can include invisible character
-         sequences in the mode strings; null values restore the default
-       - _rl_get_string_variable_value: handle values for new user-settable
-         mode string variables. Original code contributed by Dylan Cali
-         <calid1984@gmail.com>
-
-lib/readline/doc/rluser.texi
-       - {emacs,vi-ins,vi-cmd}-mode-string: document, including the fact that
-         you can use \1 and \2 to bracket sequences of non-printing
-         characters
-
-                                  11/16
-                                  -----
-lib/readline/history.c
-       - add_history: replace loop that copies history list down one item
-         with call to memmove to take advantage of whatever efficiencies
-         libc can offer.  Won't be any slower than current loop
-
-lib/readline/display.c
-       - rl_redraw_prompt_last_line: new function, calls redraw_prompt if
-         the prompt contains multiple lines; calls rl_forced_update_display
-         if not
-
-lib/readline/readline.h
-       - rl_redraw_prompt_last_line: extern declaration, undocumented in
-         texinfo manual until I get it a little more work
-
-bashline.c
-       - bash_execute_unix_command: instead of unconditionally calling
-         rl_forced_update_display, call rl_redraw_prompt_last_line if we
-         cleared the last line before executing the command.  This keeps
-         commands that don't display any other output but just manipulate
-         the contents of the line buffer from redisplaying the prompt lines
-         before the last newline multiple times.  Fixes bug reported by
-         Jesper Nygards <jesper.nygards@gmail.com> and Rob Foehl
-         <rwf@loonybin.net>.  This means that commands that display output
-         will *only* display the final line of the prompt
-       - bash_execute_unix_command: if the command returns 124, we redraw
-         the line unconditionally, including all lines of the prompt
-
-                                  11/18
-                                  -----
-builtins/mapfile.def
-       - mapfile_builtin: don't allow a valid array reference through to
-         mapfile(), since it will just create a shell variable with that name.
-         Bug and fix from Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  11/19
-                                  -----
-lib/readline/complete.c
-       - _rl_colored_completion_prefix: new variable, if non-zero, and color
-         support is compiled in, and the $LS_COLORS variable exists and
-         contains color definitions, display any common prefix of a set of
-         completions in blue when displaying all the possible completions.
-         Doesn't work with menu-complete, which inserts possible completions
-         inline
-       - colored_prefix_start(), colored_prefix_end(): new functions, used to
-         bracket colored completion prefixes
-       - fnprint: if prefix_bytes is non-zero, and _rl_colored_completion_prefix
-         is > 0, display the first PREFIX_BYTES bytes of the word bracketed
-         by calls to colored_prefix_start and colored_prefix_end
-       - print_filename: if _rl_colored_completion_prefix is > 0, compute the
-         length in bytes of the common prefix and pass that to fnprint
-
-lib/readline/readline.c
-       - readline_initialize_everything: initialize the colors from $LS_COLORS
-         if _rl_colored_completion_prefix is non-zero
-
-lib/readline/colors.c
-       - _rl_print_prefix_color: new function, changes text color to that
-         defined for the common prefix of a set of possible completions
-         (currently cyan, same as directories); currently uses C_PREFIX,
-         defined in colors.h as C_DIR
-
-lib/readline/colors.h
-       - _rl_print_prefix_color: new extern declaration
-
-lib/readline/bind.c
-       - colored-completion-prefix: new bindable variable, if set, common
-         prefix of a set of possible completions is displayed in color.
-         Feature requested by several, most recently by Richard Neill
-         <rn214@richardneill.org> (in a slightly different form) and
-         Duy Nguyen <pclouds@gmail.com>
-
-                                  11/20
-                                  -----
-builtins/printf.def
-       - printf_builtin: allow null (empty) format strings supplied with
-         -v var to set `var' to the empty string.  That is, printf -v var ""
-         is now the same as var="".  Change suggested by Mike Frysinger
-         <vapier@gentoo.org>
-
-pathexp.h
-       - FNMATCH_NOCASEGLOB: macro to decide whether or not to pass
-         FNM_CASEFOLD flag to strmatch depending on whether glob_ignore_case
-         is set; analogout to FNMATCH_IGNCASE
-
-pathexp.c
-       - glob_name_is_acceptable: use FNMATCH_NOCASEMATCH to determine flags
-         passed to strmatch; if nocaseglob is used to generate glob matches,
-         it should be used to generate ignored matches
-
-                                  11/21
-                                  -----
-pcomplete.c
-       - filter_stringlist: the call to strmatch now honors the setting of
-         nocasematch.  Feature request from Ville Skytta <ville.skytta@iki.fi>
-         back in 2010
-
-doc/bash.1,lib/readline/doc/rluser.texi
-       - complete -X: document that filtering the list of possible completions
-         honors the nocasematch option when performing matching
-
-lib/glob/gmisc.c
-       - include chartypes.h and strmatch.h for new defines
-       - match_pattern_{wchar,char}: now take new third FLAGS argument, flags
-         have same meanings as strmatch(); intent is to handle case
-         insensitive comparisons under same conditions as strmatch
-       - FOLD: imported case-folding define from sm_loop.c; wide and single-
-         byte character versions
-       - match_pattern_{wchar,char}: use FOLD when comparing characters to
-         honor FNM_CASEFOLD if set in FLAGS argument
-
-externs.h
-       - match_pattern_{wchar,char}: updated extern declarations
-
-subst.c
-       - match_{upattern,wpattern}: update strmatch/wcsmatch calls to include
-         FNMATCH_IGNCASE in flags argument
-       - match_{upattern,wpattern}: update match_pattern_{char,wchar} calls
-         to include FNMATCH_IGNCASE in flags argument (consistent with calls
-         to strmatch).  This makes pattern substitution word expansion honor
-         nocasematch shell option.  Feature requested by Davide Baldini
-         <baldiniebaldini@gmail.com>
-       - match_wpattern: make sure to fold case if necessary when doing simple
-         matching
-
-doc/{bash.1,bashref.texi}
-       - pattern substitution: updated description to include honoring setting
-         of nocasematch when performing matching
-
-subst.c
-       - expand_word_internal: optimize handling of "$@" idiom by calling
-         list_rest_of_args() and quote_list() directly at the top of the
-         function instead of going through normal code path
-       - cached_quoted_dollar_at: WORD_LIST of quoted positional parameters,
-         used by same code above that optimizes "$@"; if non-null we just
-         return a copy of the list; if null, we save a copy of the list we
-         create
-       - invalidate_cached_quoted_dollar_at: convenience function to allow
-         other parts of the shell (e.g., remember_args()) to destroy the
-         cached list of quoted positional parameter when the positional
-         parameters change
-
-builtins/common.c
-       - remember_args: call invalidate_cached_quoted_dollar_at()
-
-builtins/shift.def
-       - shift_builtin: call invalidate_cached_quoted_dollar_at after modifying
-         dollar_vars[]
-
-builtins/source.def
-       - maybe_pop_dollar_vars: call invalidate_cached_quoted_dollar_at just
-         to be safe
-
-                                  11/23
-                                  -----
-builtins/evalfile.c
-       - _evalfile: return -1 if errno == ENOENT and the flags don't include
-         FEVAL_ENOENTOK.  If we print an error message we should return an
-         error
-       - force_execute_file: new function, reads and executes commands from
-         a file but returns an error if file  doesn't exist
-
-builtins/common.h
-       - force_execute_file: new extern declaration
-
-shell.c
-       - main: call start_debugger even if dollar_vars[1] == 0 if the shell
-         isn't interactive (interactive_shell == 0)
-       - start_debugger: call force_execute_file instead of maybe_execute_file;
-         turn off debugging mode if it returns value < 0
-
-                                  11/24
-                                  -----
-hashlib.h
-       - DEFAULT_HASH_BUCKETS: doubled to 128, cost in memory use is small but
-         changes traversal order when not sorting results
-
-                                  11/25
-                                  -----
-doc/{bash.1,bashref.texi}
-       - make it clearer, by breaking it out into a separate paragraph, that
-         referencing an array without a subscript is equivalent to referencing
-         it with subscript 0
-       - add text saying that referencing any variable using a valid subscript
-         is OK
-
-                                  11/28
-                                  -----
-
-arrayfunc.c
-       - bind_array_variable, bind_assoc_variable: allow binding value to a
-         readonly variable if the ASS_FORCE flag is set in the FLAGS
-         argument
-
-subst.h
-       - ASS_FORCE: new assignment flag; means to allow assignment even if
-         variable is marked readonly
-
-builtins/declare.def
-       - when assigning a value to an array or assoc variable using
-         something like `declare -r foo=bar' where foo is an existing array
-         variable, pass the ASS_FORCE to assign_array_var_from_string so
-         the assignment is allowed.  Fixes debian bug 765759
-         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765759
-
-builtins/setattr.def
-       - var_attribute_string: new function to return (as argument) a char
-         array with attribute flag values for a given variable; returns the
-         length of the array
-
-lib/sh/shquote.c
-       - sh_quote_reusable: function returning a version of its string
-         argument that is quoted for reuse
-
-externs.h
-       - sh_quote_reusable: extern declaration
-
-builtins/common.h
-       - MAX_ATTRIBUTES: define used to size arrays for attribute flag
-         characters
-       - var_attribute_string: new extern function declaration
-
-subst.c
-       - array_remove_pattern: fixed a bug where `var' instead of `v' was
-         tested for invisible attribute
-       - get_var_and_type: fill in a valid *VARP if returning VT_VARIABLE
-         because callers may need to use it
-       - parameter_brace_transform: family of functions to implement the new
-         mksh-inspired ${param@spec} transformation word expansions.  Some
-         of the operators transform the (expanded) value of the parameter,
-         the rest expand to information about the parameter itself
-         (array_transform, parameter_list_transform, list_transform,
-         string_transform, pos_params_assignment, array_var_assignment,
-         string_var_assignment)
-       - parameter_brace_expand: changes to parse the new `@' word expansion
-         operator and call parameter_brace_transform appropriately
-       - parameter_brace_expand: make sure we handle ${#@} as we have before
-         even in the presence of the new `@' operator
-
-variables.c
-       - push_temp_var: make sure to call bind_variable_internal with the
-         ASS_FORCE flag so we override readonly variables created with
-         something like `tempvar=foo declare -r foo'.
-       - bind_variable_internal: honor ASS_FORCE flag to allow binding even
-         if a variable is readonly
-
-execute_cmd.c
-       - struct func_array_state: new state to save state of BASH_LINENO,
-         BASH_SOURCE, and FUNCNAME during function execution so it can be
-         restored on a jump to top level
-       - restore_funcarray_state: new function to restore func_array_state
-       - execute_function: fill in func_array_state variable, add unwind-
-         protect to restore it on jump to top level, call explicitly at
-         end of function if subshell != 0 (may not be necessary, but safe
-         for now).  Fixes bug with local assignments to FUNCNAME reported
-         by Arfrever Frehtes Taifersar Arahesis <arfrever.fta@gmail.com>
-
-                                  11/29
-                                  -----
-arrayfunc.c
-       - assign_compound_array_list: turn off ASS_APPEND flag when processing
-         each individual assignment inside the parens in var+=(...).  The
-         outer += should not affect assignments to existing subscripts;
-         those should be treated like usual assignments unless += supplied
-         inside the parens.  Bug report from Maarten Billemont
-         <lhunath@lyndir.com>, fix from Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-config.h.in
-       - HAVE_PSELECT: define if pselect(2) available
-
-configure.ac
-       - check for pselect(2), define HAVE_PSELECT if found
-
-lib/readline/input.c
-       - rl_getc: use pselect(2) to wait for input ready on readline's
-         input fd or for a signal to arrive, will handle SIGWINCH (which
-         does not interrupt read(2)) and thus allow resize to happen without
-         having to wait to read more input.  Only works if pselect available
-         and returns -1/EINTR on a signal even if the signal was installed
-         with SA_RESTART.  From a suggestion from Egmont Koblinger
-         <egmont@gmail.com>
-
-                                  12/3
-                                  ----
-variables.c
-       - flush_temporary_env: new function, disposes all temp variables in
-         temporary_env hash table
-       - bind_variable: only try to update a temporary variable's value in the
-         temporary env if the value argument is not null.  Fixes bug reported
-         by <tangqinghao@360.cn>
-
-variables.h
-       - flush_temporary_env: new extern declaration
-
-subst.c
-       - command_substitute: if running command substitution as part of
-         expanding a redirection (expanding_redir == 1), flush any temporary
-         environment we've inherited as part of this command, since we are not
-         supposed to have access to the temporary environment.  Since
-         expanding_redir only controls access to the temporary environment for
-         variable lookup and binding, we can turn it off in the subshell
-
-                                  12/4
-                                  ----
-builtins/printf.def
-       - printstr: make sure a missing precision specifier after a `.' is
-         treated as 0, as printf(3) specifies.  Fixes ubuntu bash bug
-         1399087 (https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1399087)
-
-                                  12/5
-                                  ----
-subst.c
-       - skip_to_delim: if scanning past process substitution (skipcmd == 1,
-         noprocsub == 0), use extract_delimited_string instead of
-         extract_process_subst, which was changed a while back (bash-4.3.23)
-         to use xparse_dolparen.  xparse_dolparen complains if the command
-         or process substitution is unterminated, since it runs the parser,
-         which is not what we want here.  Command substitution does the same
-         thing.  Fixes bug reported by  Daniel Kahn Gillmor
-         <dkg@fifthhorseman.net> as Debian bash bug 771968
-         (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771968)
-
-                                  12/6
-                                  ----
-subst.c
-       - command_substitute: short-circuit without forking on a command string
-         that consists entirely of <blank>s and newlines
-
-jobs.c
-       - make_child: changes to allow interrupts through if fork fails and
-         we are sleeping for `forksleep' seconds
-       - waitchld: make things a little more resilient if CHILD ends up NULL
-
-                                  12/12
-                                  -----
-lib/readline/complete.c
-       - rl_display_match_list: when calculating common prefix to display in
-         color, make sure we correctly handle a common prefix with a trailing
-         `/' as we do when checking whether or not to add an ellipis.
-         printable_part() doesn't return the whole pathname if it ends in a
-         slash, to avoid printing null strings, so we have to make sure we
-         have the entire prefix
-
-lib/readline/complete.c
-       - _rl_complete_display_matches_interrupt: new variable, set to 1 by
-         _rl_complete_sigcleanup to let rl_display_match_list know it has
-         freed the match list
-       - display_matches: check for signals during the printing loops with
-         RL_SIG_RECEIVED(), return immediately if there is a pending signal
-         (might not want to do this if it's SIGWINCH -- CHECK)
-       - rl_complete_internal: if _rl_complete_display_matches_interrupt
-         set after calling display_matches, just null out `matches' since
-         it's already been freed and call any application-set signal hook
-
-                                  12/14
-                                  -----
-parse.y
-       - time_command_acceptable: if the token before a newline is `|',
-         return 0, since it's not really valid to time inside a pipeline.
-         Only handles a single newline but allows things like
-               echo a |
-                time cat
-         to invoke /usr/bin/time, which is probably enough to catch the
-         stray carriage return.  Fixes bug reported by Andre Majorel
-         <aym-ung@teaser.fr>
-
-builtins/declare.def
-       - declare_internal: don't try to perform compound assignments unless
-         the WORD_DESC has flags including W_COMPASSIGN (maybe should check
-         W_ASSIGNMENT as well), avoiding unexpected evaluation if a word
-         is of the form (word) and is assigned to an array variable like so:
-         declare -x var=$value.  Bug reported by Stephane Chazelas
-         <stephane.chazelas@gmail.com>. Will eventually be contingent on
-         compatibility level > 43, but not there yet. TENTATIVE
-
-                                  12/15
-                                  -----
-lib/sh/Makefile.in
-       - add missing dependencies for shmatch.o.  Pointed out by Sergey
-         Mikhailov <sergey.mikhailov@gmail.com>
-
-                                  12/16
-                                  -----
-{execute_cmd,subst}.c
-       - W_ASSIGNINT: remove, not used any more
-
-execute_cmd.c
-       - fix_assignment_words: don't look for `-i' option and set W_ASSIGNINT
-         flag any more; doing things a different way
-       - shell_expand_word_list: instead of using W_ASSIGNINT flag, since it
-         doesn't take into account all options that can transform values on
-         assignment (-l/-u/-c can also), go through option arguments looking
-         for options that need special handling and add them to the `opts'
-         array for make_internal_declare to use.  Fixes bug with constructs
-         like `declare -al foo=(UPONE UPTWO UPTHREE)' not being lowercased on
-         assignment reported by Linda Walsh <bash@tlinx.org>
-
-
-
-                                  12/18
-                                  -----
-lib/readline/readline.c
-       - rl_internal_char: when we read EOF on a non-empty line, check for
-         signals and invoke any readline signal handling and any application-
-         installed signal hook
-
-                                  12/20
-                                  -----
-lib/readline/readline.c
-       - rl_internal_char: if we read EOF on a non-empty line, set c to
-         _rl_eof_char the first time through.  If we read EOF the next time,
-         return EOF from readline().  If callbacks are defined, this returns
-         EOF immediately, since lastc isn't available.  Fix for problem
-         most recently identified by Jiri Kukacka <jiri.kukacka@orcle.com>,
-         it has come up in the past
-
-                                  12/21
-                                  -----
-builtins/declare.def
-       - declare_internal: keep track of whether or not an assignment statement
-         argument to declare is an array subscript assignment; need to
-         differentiate assignments from straight declarations (declare a[4])
-         which are accepted for backwards compatibility
-       - assignment statements like declare a[2]=foo are now treated as
-         straight subscript assignment statements if a already exists as an
-         array variable
-       - declare foo='(1 2 3)' is treated as an assignment to foo[0] if foo
-         exists and is an array, just as it would be if it were an assignment
-         statement and `declare' was not present.  All this from a proposal
-         by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  12/22
-                                  -----
-builtins/read.def
-       - read_tty_modified: function to tell the rest of the shell if the
-         read builtin has modified the tty
-       - read_builtin: make sure to initialize terminating signals before
-         installing a SIGALRM signal handler in case we modify the tty as
-         well as ask for a timeout; the subsequent call to
-         initialize_terminating_signals would overwrite the read-builtin-
-         local SIGALRM handler
-
-builtins/common.h
-       - read_tty_modified: new extern declaration
-
-shell.c
-       - exit_shell: if read_tty_modified() returns true, call read_tty_cleanup
-         to undo the terminal modifications. Extension of previous fixes;
-         fixes bug with read -s reported by Richard W. Marsden
-         <richard@marsden.nu>
-
-
-                                  12/23
-                                  -----
-builtins/setattr.def
-       - show_var_attributes: call print_array_assignment and print_assoc_assignment
-         with a `not quoted' flag so the assignment statements are not
-         surrounded by single quotes.  Caused changes to a lot of test output
-
-                                  12/29
-                                  -----
-lib/readline/complete.c
-       - stat_char: Windows doesn't handle X_OK flag to access(2); use file
-         extensions to determine whether or not a file is executable.  Bug
-         report and fix from Eli Zaretskii <eliz@gnu.org>
-
-configure.ac
-       - changed version to bash-4.4-devel
-
-lib/readline/readline.h
-       - changed version to readline-6.4
-
-                                  12/30
-                                  -----
-readline.h
-       - struct readline_state: fix types of `ignorefunc' and `attemptfunc'
-         members
-
-lib/sh/shquote.c,externs.h
-       - sh_contains_shell_metas, sh_contains_quotes: now take `const char *'
-         as parameter
-
-stringlib.c,externs.h
-       - strcreplace: `text' argument now `const char *'
-
-pathexp.[ch]
-       - quote_globbing_chars: `string' argument now `const char *', accompanying
-         changes to function local variables
-
-pcomplete.c
-       - preproc_filterpat: `text' argument now `const char *'
-       - filter_stringlist: `text' argument now `const char *'
-
-                                  12/31
-                                  -----
-builtins/evalstring.c
-       - should_suppress_fork: new function, broke code that decides whether
-         to turn on CMD_NO_FORK flag out of parse_and_execute into a separate
-         function
-
-execute_cmd.c
-       - execute_command_internal: AND_AND, OR_OR: call should_suppress_fork
-         for the RHS of && and ||, make `make' invocations marginally more
-         efficient
-
-flags.c
-       - get_current_flags: returns a bitmap of all single-letter shell
-         options with a non-zero value meaning option is enabled
-       - set_current_flags: set current single-letter options from a passed
-         bitmap, which has presumably been initialized with get_current_flags
-
-flags.h
-       - {get,set}_current_flags: new extern declarations
-
-builtins/declare.def
-       - declare_internal: if invoked as `local', interpret name argument of
-         `-' to mean to save (and restore at shell return) single-letter
-         shell options
-
-variables.c
-       - push_func_var: if we encounter `-' as the name of a local variable,
-         take the value and call set_current_flags on it to restore old
-         flag settings
-
-builtins/set.def
-       - get_current_options: returns a bitmap of all shell options settable
-         with `set', with a non-zero value meaning option is enabled
-       - set_current_options: set current shell options from a passed
-         bitmap, which has presumably been initialized with get_current_options
-
-
-                                1/1/2015
-                                --------
-lib/readline/parens.c
-       - _rl_blink_matching_paren: initialize to 0 whether or not select(2) is
-         available.  Inconsistency reported by Mark Karpov
-         <markkarpov@opmbx.org>
-
-builtins/declare.def
-       - declare_internal: use get_current_options instead of
-         get_current_flags, so `local -' can be generalized
-
-variables.c
-       - push_func_var: use set_current_options instead of set_current_flags
-         so `local -' can be generalized
-
-doc/{bash.1,bashref.texi}
-       - document new `local -' feature; originally inspired by Robert Elz
-         <kre@munnari.oz.au> describing feature in NetBSD sh
-
-                                   1/3
-                                   ---
-lib/readline/{complete,funmap,kill,histfile,util}
-lib/readline/readline.h
-lib/tilde/tilde.c
-       - fixes for filename- and evironment-related issues on Windows.  Fixes
-         from Eli Zaretskii <eliz@gnu.org>
-       - Windows can paste to the console from the clipboard like Cygwin
-       - Windows uses $APPDATA as a pseudo-$HOME
-
-lib/readline/input.c
-       - rl_getc: use _getch on Windows to avoid being overridden by a getch
-         ncurses function
-       - win32_isatty: replace Windows isatty(3) with a function that does
-         additional checks, sinces Windows isatty returns non-zero for
-         every character device.  From Eli Zaretskii <eliz@gnu.org>
-
-lib/readline/display.c
-       - delete_chars: if compiled with ncurses on Windows, this code can
-         work, so build it in if NCURSES_VERSION defined
-       - open_some_spaces: ditto
-
-                                   1/6
-                                   ---
-doc/{bash.1,bashref.texi}
-       - minor grammar and typo corrections from TonyMc <afmcc@btinternet.com>
-
-                                   1/8
-                                   ---
-sig.c
-       - throw_to_top_level: only attempt to run the interrupt trap if SIGINT
-         is trapped -- minor optimization
-       - throw_to_top_level: if we are running a trap, call run_trap_cleanup
-         to turn off the sigmodes flags
-
-trap.c
-       - _run_trap_internal: temporarily suppress pending SIGINTs while running
-         one of the traps the shell handles internally (e.g., ERR).  Fixes bug
-         reported by Keith Thompson <keithsthompson@gmail.com>
-
-                                  1/10
-                                  ----
-bashhist.c
-       - bash_history_inhibit_expansion: use skip_to_delim with the history
-         expansion character to see whether or not the instance of the
-         history expansion character should be skipped because, for instance,
-         it is in a command substitution.  Fixes issue reported by
-         Zigmund.Ozean@zig-home.localdomain
-
-                                  1/14
-                                  ----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: if we are in a multibyte locale, make sure to
-         use _rl_find_prev_mbchar when trying to delete characters from the
-         search string, instead of just chopping off the previous byte.
-         Fixes bug reported by Kyrylo Shpytsya <kshpitsa@gmail.com>
-
-lib/readline/complete.c
-       - rl_filename_completion_function: if we tilde-expand `dirname', make
-         sure we use the expanded result instead of throwing it away for the
-         quote-removed `users_dirname', which still has any leading tilde.
-         Fixes bug reported by Dave Rutherford <dave@evilpettingzoo.com>
-
-execute_cmd.c
-       - select_query: if the read builtin doesn't return anything in REPLY,
-         return NULL (failure). Fixes bug reported by Etherial Raine
-         <osirisgothra@hotmail.com>
-
-builtins/read.def
-       - read_builtin: if REPLY has the readonly or noassign attribute, return
-         failure
-
-                                  1/16
-                                  ----
-redir.c
-       - redir_open: if open() returns -1/EINTR, check traps as well as
-         using QUIT to handle signals
-
-                                  1/18
-                                  ----
-jobs.c
-       - wait_for: make sure queue_sigchld is set to 1 before unblocking
-         SIGCHLD if MUST_UNBLOCK_CHLD is defined
-
-                                  1/19
-                                  ----
-pcomplete.h
-       - new progcomp option: COPT_NOSORT, means to not sort list of possible
-         completions
-
-pcomplete.c
-       - pcomp_set_readline_variables: if COPT_NOSORT set in compspec flags,
-         set rl_sort_completion_duplicates to 0
-
-builtins/complete.def
-       - _compopt: new option value: -o nosort, sets COPT_NOSORT in compspec
-         option flags. Provides new -o nosort option for complete and compgen
-
-bashline.c
-       - attempt_shell_completion: make sure rl_sort_completion_matches is
-         set to 1 before completion is attempted; allow a compspec to turn
-         it off
-
-lib/readline/kill.c
-       - rl_vi_yank_pop: new function, vi-mode version of yank-pop.  Original
-         code from Ian Kelling <ian@iankelling.org>
-
-lib/readline/funmap.c
-       - `vi-yank-pop': bindable name mapped to rl_vi_yank_pop
-
-lib/readline/readline.h
-       - rl_vi_yank_pop: extern declaration
-
-                                  1/21
-                                  ----
-lib/sh/shquote.c
-       - sh_backslash_quote: change to understand and handle multibyte
-         characters, using is_basic, COPY_CHAR_P.  See
-         https://bugzilla.redhat.com/show_bug.cgi?id=1184320 for original
-         report
-
-                                  1/23
-                                  ----
-include/posixjmp.h
-       - use setjmp_sigs instead of redefined setjmp, it fails on Cygwin.
-         Report from Eric Blake <eblake@redhat.com>
-
-builtins/wait.def,shell.c
-       - use setjmp_sigs instead of setjmp call, since setjmp no longer
-         redefined to something known
-
-include/chartypes.h, lib/readline/chardefs.h
-       - make sure all ctype.h macros are called with unsigned char args,
-         casting to make sure
-
-lib/sh/casemod.c
-       - sh_modcase: don't assume that the upper and lower case versions of a
-         character are the same width, so don't try to do the conversion in
-         place: convert and copy the converted characters one or more at a
-         time to the returned string
-       - sh_modcase: since upper and lower case versions of same character
-         may have different widths in some locales, don't shortcut and assume
-         that we can do single-byte case modification (toupper) with a
-         single-byte input character (e.g., `i').  Fix for problem reported
-         by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                  1/31
-                                  ----
-lib/readline/histfile.c
-       - history_truncate_file, history_do_write: if the first rename(2)
-         of the history file to the backup file fails, set the backup file
-         name to NULL to prevent any later attempts to restore the
-         original.  Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
-       - history_do_write: don't attempt to back up non-regular files.
-         Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
-
-                                   2/2
-                                   ---
-trap.c
-       - run_interrupt_trap: now takes an argument indicating whether or not
-         it was called just before a longjmp to top_level; change callers
-       - run_interrupt_trap: if running a trap and we are being called before
-         a longjmp to top_level, call run_trap_cleanup on running trap so
-         a QUIT call while running a DEBUG trap, for instance, doesn't leave
-         sigmodes[DEBUG_TRAP] including SIG_INPROGRESS.  Fixes bug reported
-         by Chih-Chieh Chou <ccchou@gmail.com>
-
-sig.c
-       - throw_to_top_level: change call to run_interrupt_trap to pass arg 1
-       - termsig_handler: change call to run_interrupt_trap
-
-trap.h
-       - run_interrupt_trap: update extern prototype declaration
-
-                                   2/4
-                                   ---
-lib/readline/histfile.c
-       - histfile_backup, histfile_restore: new functions to back up and restore
-         history file to `filename-', following (one level of) symlinks through
-         so we don't rename the symlink itself.  From a suggestion by
-         Jonathan Hankins <jhankins@homewood.k12.al.us>
-
-assoc.c
-       - assoc_to_assign: if an index happens to be `@' or `*', make sure it's
-         double-quoted.  Bug report from Greg Wooledge <wooledg@eeg.ccf.org>
-
-                                   2/5
-                                   ---
-lib/readline/bind.c
-       - rl_bind_key: if we are rebinding a key that is not bound to a
-         function or a macro, construct a key sequence and pass it to
-         rl_bind_keyseq.  Make sure that '\' when it is used as a key is
-         changed to "\\" so it can survive rl_translate_keyseq.  Fixes
-         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776743
-
-                                   2/8
-                                   ---
-include/posixjmp.h
-       - _rl_longjmp, sh_longjmp: new defines, expand to siglongjmp or longjmp
-         depending on autoconf results, used to avoid redefining longjmp,
-         remove _OPENNT conditional code.  Report from Eric Blake
-         <eblake@redhat.com>
-
-{bashjmp,quit}.h,{execute_cmd,expr,jobs,sig,trap}.c,builtins/{evalstring.c,return.def}
-       - change calls to longjmp to use sh_longjmp
-
-lib/readline/util.c
-       - change calls to longjmp to use _rl_longjmp
-
-                                  2/18
-                                  ----
-variables.c
-       - bind_int_variable: make sure `v' is non-null before making it visible
-
-                                  2/19
-                                  ----
-arrayfunc.c
-       - assign_array_var_from_word_list: after assignment, mark variable as no
-         longer invisible
-       - assign_array_var_from_string: after assignment, mark variable as no
-         longer invisible
-
-builtins/declare.def
-       - declare_internal: add warning if an attempt is made to use a quoted
-         compound assignment as an argument to declare (declare -a foo='( 1 2 )');
-         backwards compatible with bash-4.3. Still a tentative change
-
-                                  2/20
-                                  ----
-lib/glob/smatch.c
-       - is_wcclass: check malloc() return value, return -1 if it fails
-         Report from Tobias Stoeckmann <tobias@stoeckmann.org>
-
-lib/sh/shmatch.c
-       - sh_regmatch: check malloc() return value, handle NULL value if it
-         fails.  Report from Tobias Stoeckmann <tobias@stoeckmann.org>
-
-                                  2/22
-                                  ----
-lib/readline/doc/rltech.texi
-       - rl_callback_handler_install: note that the handler function should
-         free the line it receives, as with readline.  Suggested by
-         Ulf Magnusson <ulfalizer@gmail.com>
-       - Readline Signal Handling: note that application needs to clean up
-         readline's terminal state if it wants to handle a signal before
-         the line handler restores it.  Suggested by Ulf Magnusson
-         <ulfalizer@gmail.com>
-
-                                  2/24
-                                  ----
-lib/readline/histfile.c
-       - history_do_write,history_truncate_file: if the write fails, make sure
-         to set history_lines_written_to_file to 0 so we don't lose those
-         history entries
-
-                                  2/27
-                                  ----
-execute_cmd.c
-       - execute_function: unwind-protect the value of line_number_for_err_trap,
-         so a function that returns a non-zero value and triggers an ERR trap
-         has the right value for LINENO. Any simple command in the function
-         body can change it.  Bug report from Paul Donohue <gnu@paulsd.com>
-
-                                   3/5
-                                   ---
-lib/sh/shquote.c
-       - sh_backslash_quote: cast `c' to `unsigned char' before using as
-         index into backslash_table.  Report and fix from
-         alexeyv.90@gmail.com
-
-arrayfunc.[ch]
-       - valid_array_reference: added second `flags' argument for future use;
-         currently unused
-
-parse.y,{redir,subst,variables,test}.c
-builtins/{declare,printf,read,set}.def
-       - valid_array_reference: changed callers
-
-                                   3/7
-                                   ---
-lib/readline/signals.c
-       - _rl_handle_signal: if readline gets a SIGTSTP or SIGTTIN, block
-         SIGTTOU so a backgrounded readline can reset the terminal settings
-         appropriately, otherwise the terminal state and readline's idea
-         of it can get messed up.  Original report from Dave Wysochanski
-         <dwysocha@redhat.com> and Dave Anderson <anderson@redhat.com>
-
-trap.c
-       - run_pending_traps: don't allow recursive SIGWINCH trap invocations;
-         they're wasteful and trying to handle a stream of signals while a
-         user resizes the terminal can lead to malloc errors trying to save
-         and restore the_pipeline multiple times.  Problem reported most
-         recently by Martin M. S. Pederson (Fedora bash bug 1197768
-         https://bugzilla.redhat.com/show_bug.cgi?id=1197768)
-       - reset_or_restore_signal_handlers: set pending_traps to 0 for all
-         signals when forking a child. TENTATIVE fix
-
-jobs.c
-       - {save,restore}_pipeline: block SIGCHLD while manipulating the_pipeline
-         like cleanup_the_pipeline does. XXX - may not be necessary
-
-lib/readline/display.c
-       - rl_redisplay: fixed case where multibyte character in the prompt
-         (e.g., \u03bb) in the last screen column causes problems with line
-         wrapping because the newline marker is put in the middle of the
-         multibyte char.  Most recently reported on Ubuntu by
-         <sterpe@gmail.com>
-
-pathexp.c
-       - quote_string_for_globbing: if a bracket expression doesn't have a
-         closing right bracket, rescan it from just after the opening
-         bracket without treating it as a bracket expression.  Bug report
-         from Stephane Chazelas <stephane.chazelas@gmail.com>
-
-                                   3/9
-                                   ---
-subst.c
-       - process_substitute: keep the last pipeline created to run a process
-         substitution in LAST_PROCSUB_CHILD; discard it when another one is
-         created
-
-jobs.[ch]
-       - discard_pipeline: now global, so process_substitute can call it
-
-jobs.c
-       - last_procsub_child: new variable, set and modified only by the process
-         substitution code
-       - find_pipeline: if the requested pid is in LAST_PROCSUB_CHILD, return
-         it; analogous to the way this code handles the_pipeline
-       - waitchld: if we find a child via find_pipeline that is a part of the
-         last process substitution child, mark that child appropriately.  If
-         the child is dead, add it to the bgp list.  This and the previous
-         change allow waiting for the most recent process substitution (the
-         one corresponding to $!).  Original report from Stephane Chazelas
-         <stephane.chazelas@gmail.com>
-
-                                  3/10
-                                  ----
-arrayfunc.c
-       - unbind_array_element: make sure skipsubscript() doesn't try to parse
-         embedded quotes in the subscript, since this has already been through
-         one round of word expansion before calling the unset builtin.  (This
-         function is only called by the unset builtin).  Fixes bug reported by
-         <vampyrebat@gmail.com>
-
-                                  3/17
-                                  ----
-jobs.c
-       - waitchld: move code that adds the last process substitution pid to
-         the bgpids array from waitchld (where it can call malloc in a signal
-         handler context) to cleanup_dead_jobs
-
-                                  3/19
-                                  ----
-subst.c
-       - parameter_brace_expand: if expanding an array in a context where word
-         splitting will not take place (W_ASSIGNRHS only for now), make sure
-         to pass the double-quoted flag to chk_atstar so we don't get the
-         unquoted $* behavior, which will cause unwanted word splitting.
-         Fixes bug reported by isabella parakiss <izaberina@gmail.com>
-
-arrayfunc.c
-       - unbind_array_element: don't assume that caller will check and pass
-         only array variables; don't allow non-array variables to be unset
-         using the `@' or `*' subscripts and don't allow any subscripts other
-         than 0; return -2 in those cases
-       - unbind_array_element: unset a non-array variable if passed a subscript
-         of `0' (e.g., `unbind "scalar[0]"').  This is new functionality that
-         parallels the ${scalar[0]} expansion
-
-builtins/set.def
-       - unset_builtin: don't check whether a variable is an array if it's
-         referenced using array syntax (scalar[0]); pass it to
-         unbind_array_element anyway and check the result.  This means that
-         `unset scalar' and `unset scalar[0]' are equivalent
-
-                                  3/20
-                                  ----
-builtins/set.def
-       - set_builtin: make `-i' an invalid option, unconditionally for now.
-         From a bug-bash discussion started by Peng Yu <pengyu.ut@gmail.com>
-
-                                  3/21
-                                  ----
-lib/readline/colors.c
-       - _rl_print_color_indicator: handle dangling symlinks (C_ORPHAN) and
-         the `target' specifier for links (dereference S_ISLNK if the target
-         exists).  Bug report and fix from andreas@stapelspeicher.org
-
-{arrayfunc,subst}.c
-       - add code to save and restore this_command_name in places that set
-         this_command_name to NULL to prevent error messages from arithmetic
-         evaluation.  Fixes bug reported by brian.carpenter@gmail.com
-
-builtins/mapfile.def
-       - do_chop: remove a new DELIM argument from the line, instead of
-         unconditionally removing newline
-       - mapfile: if -d delim is supplied and we are breaking fields at DELIM,
-         remove DELIM if the -t option is supplied by passing DELIM to do_chop().
-         Suggested by Geir Hauge <geir.hauge@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - mapfile: document new -t option behavior, defaults are the same
-
-builtins/alias.def
-       - print_alias: if the first character of an alias name is `-', add a
-         `-- ' after `alias' to avoid option errors when trying to reuse the
-         output.  Bug report and fix on savannah from Pasha Bolokhov
-         <pasha.bolokhov@gmail.com>
-
-                                  3/22
-                                  ----
-builtins/declare.def
-       - declare_internal: if creating a variable does not return a valid
-         variable in VAR, check for null variable before dereferencing it.
-         This happens with nameref variables referencing variables set to
-         the empty string.
-         Fixes bug reported by Arthur200000 <arthur200126@163.com> 
-
-                                  3/23
-                                  ----
-doc/{bash.1,bashref.texi}
-       - INVOCATION: add language to make it clear that non-interactive login
-         shells execute ~/.bash_logout if they run the `exit' builtin.  From a
-         question from Christoph Anton Mitterer <calestyo@scientia.net>
-
-                                   4/6
-                                   ---
-subst.c
-       - process_substitute: increment and decrement subshell_level around
-         calls to parse_and_execute, as in command substitution, so
-         $BASH_SUBSHELL gets new values in the subshell.  Fixes inconsistency
-         pointed out by Peng Yu <pengyu.ut@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - read: add clarifying text to note that the -N option does not split
-         on $IFS, but does retain backslash as an escape character subject
-         to -r.  Report from isabella parakiss <izaberina@gmail.com>
-
-builtins/declare.def
-       - declare_internal: unless it's the last statement in a {...} block,
-         NEXT_VARIABLE must be protected by braces.  Bug introduced in patch
-         from 3/22, reported by Eduardo A. Bustamante López
-         <dualbus@gmail.com>
-
-                                   4/7
-                                   ---
-parse.y
-       - shell_getc: if bash is reading input from a string that ends with an
-         unquoted backslash, add another backslash instead of a newline, since
-         the backslash and newline will disappear in normal processing.  Fixes
-         bug with `bash -c 'eval \\; echo y' ' skipping the eval command and
-         setting incorrect exit status, and `bash -ic 'eval \\; echo y' '
-         seeing EOF on empty line and exiting before the echo.  Keep track of
-         backslash state with last_was_backslash; set in char reading loop.
-         Fixes bug reported by Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                   4/8
-                                   ---
-shell.c
-       - main: check for $INSIDE_EMACS as well as $EMACS when deciding whether
-         or not bash is being run in a GNU emacs shell window.  Don't bother
-         checking whether $TERM is unset because variable initialization sets
-         it to `dumb' if unset.  Fixes from Paul Eggert <eggert@CS.UCLA.EDU>
-
-parse.y
-       - push_token: new function, rotates current_token through last_read_token,
-         saving old values like yylex() does, sets current_token to argument
-
-evalfile.c
-       - _evalfile: if current_token is yacc_EOF, push a newline as the value
-         of current_token instead, using push_token().  yacc_EOF can result if
-         sourced file doesn't end with a newline but does end with an unescaped
-         backslash.  Fixes bug reported by Pedro Gimeno
-         <pgwr-842@personal.formauri.es>
-
-lib/readline/histfile.c
-       - use PARAMS(x) instead of __P(x).  Bug reported by Evan Gates
-         <evan.gates@gmail.com>
-
-                                   4/9
-                                   ---
-execute_cmd.c
-       - execute_simple_command: if we haven't already forked, and we have
-         created FIFOs, turn off the no-fork optimization in the simple
-         command's flags. Originally reported to savannah by Kuang-che Wu as
-         https://savannah.gnu.org/support/index.php?108732
-
-                                  4/10
-                                  ----
-trap.c
-       - trap_if_untrapped: new function, sets a trap on a signal if that
-         signal is not already trapped
-       - maybe_set_debug_trap: new function, sets DEBUG trap to command string
-         argument only if it's not already trapped
-
-trap.h
-       - maybe_set_debug_trap: new extern declaration
-
-
-builtins/source.def
-       - source_builtin: if the -T option isn't set, use maybe_set_debug_trap
-         in the unwind-protect instead of unconditionally restoring the old
-         trap string. That means if the sourced file changes the DEBUG trap,
-         that new trap will persist instead of being undone when the old
-         value is restored. Fixes bug reported by Scott Bronson
-         <bronson@rinspin.com>
-
-builtins/evalstring.c
-       - parse_string: before we jump to top_level, if we are at the `bottom'
-         of the parse_and_execute stack (parse_and_execute_level == 0), call
-         top_level_cleanup() before jumping so the right cleanup happens (e.g.,
-         cleaning up redirections and other state).  Fixes bug reported by
-         Sam Liddicott <sam@liddicott.com>
-
-                                  4/15
-                                  ----
-jobs.c
-       - delete_job: only add J_ASYNC (and not J_FOREGROUND) jobs to the
-         bgpids array, since Posix says shells only need to save the status
-         of async jobs.  Report and fix from John Fremlin <john@fb.com>
-
-                                  4/17
-                                  ----
-pcomplib.c
-       - COMPLETE_HASH_BUCKETS: increase to 256 since bash-completion is
-         over 300 completions by now
-
-variables.c
-       - VARIABLES_HASH_BUCKETS: constant used to size shell variables hash
-         table instead of relying on hash library default.  Used in calls
-         to hash_create in create_variable_tables(), push_temp_var(), and
-         push_func_var().  Currently set to 1024 because why not?  From a
-         discussion starting at
-         https://lists.gnu.org/archive/html/bug-bash/2015-04/msg00089.html
-       - initialize_shell_variables: if FUNCTION_IMPORT is not defined, the
-         nested conditional compilation causes syntax errors.  Bug and fix
-         from Eric Blake <eblake@redhat.com>
-
-configure.ac
-       - function-import: fix typo, assign to correct variable.  Found as the
-         result of a report by Eric Blake <eblake@redhat.com>
-
-shell.c
-       - open_shell_script: check whether or not file argument is a
-         directory before opening; Posix says that implementations may open
-         a directory with O_RDONLY.  Bug report from
-         Eduardo A. Bustamante López <dualbus@gmail.com>
-
-                                  4/19
-                                  ----
-ulimit.def
-       - fix typo in limits[] declaration of `k'
-
-                                  4/20
-                                  ----
-configure.ac
-       - add template definitions set by AC_USE_SYSTEM_EXTENSIONS from a report
-         from Andreas Schwab <schwab@linux-m68k.org>
-
-variables.c
-       - FUNCTIONS_HASH_BUCKETS: constant used to size the hash tables used for
-         shell functions and the text of shell function definitions.  Initially
-         set to 512, even though it's a really rare case that someone has more
-         than around 150 functions, even with bash-completion
-
-                                  4/21
-                                  ----
-shell.c
-       - main: malloc_set_register: change arg to 0 to disable keeping track of
-         allocations and frees in table; change to 1 for malloc debugging on
-         demand.  Table is too small to keep effective track of allocations on
-         a modern system, need to use something like valgrind
-
-                                  4/22
-                                  ----
-shell.c
-       - main: move cmd_init() (initialize word desc and word list object
-         caches) after startup files are read so the cache doesn't get filled
-         up with semi-permanent storage for shell functions and variables
-
-execute_cmd.c
-       - execute_function: use maybe_set_debug_trap in the same way as source
-         builtin change from 4/10 to allow functions to reset a DEBUG trap
-         when set -T not in effect.  From a report by Peng Yu
-         <pengyu.ut@gmail.com>
-
-                                  4/23
-                                  ----
-execute_cmd.c
-       - execute_disk_command: don't overwrite value of subshell_environment
-         by assigning SUBSHELL_FORK; just OR in SUBSHELL_FORK so something
-         like SUBSHELL_ASYNC or SUBSHELL_PIPE is preserved
-
-jobs.c
-       - wait_for: don't call give_terminal_to if running in a subshell
-         environment, not just if running_in_background is set; don't want
-         shell functions waiting for a process to complete in a pipeline to
-         give the terminal to the wrong process group.  Part of fix for bug
-         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
-       - make_child: child process should not try to give the terminal to the
-         pipeline_pgrp if running as part of a pipeline (SUBSHELL_PIPE in
-         subshell_environment); functions in execute_cmd.c don't set that
-         flag until after make_child returns and the child process is running.
-         Rest of fix for bug reported by Valentin Bajrami
-         <valentin.bajrami@gmail.com>
-
-                                  4/24
-                                  ----
-redir.c
-       - redirection_error: if the redirection involves {varname}, only use
-         `varname' in the error message if the error code is < 0 (one of the
-         internal redirection errors, like ambiguous or bad variable name);
-         otherwise the issue is probably with the filename and should be treated
-         as usual.  Fixes problem reported by Dr. David Alan Gilbert
-         <dgilbert@redhat.com>
-
-configure.ac,config.h.in
-       - sys/ioctl.h: add check in AC_CHECK_HEADERS macro, define HAVE_SYS_IOCTL_H
-
-lib/readline/{rltty,terminal}.c
-       - sys/ioctl.h: include unconditionally for ioctl declaration, avoid
-         issues with `implicit declaration' warnings.  Issue originally
-         raised on gdb list by Chen Gang <xili_gchen_5257@hotmail.com>
-
-                                  4/27
-                                  ----
-lib/malloc/table.c
-       - mem_table: now a circular buffer showing the state of the last
-         REG_TABLE_SIZE allocations rather than a hash table that quickly
-         fills up
-
-builtins/declare.def
-       - typeset_builtin: add -n to list of supported options.  Omission
-         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
-
-unwind_prot.c
-       - use object caches instead of malloc/free to allocate and deallocate
-         unwind-protect elements
-       - uwp_init: initialize unwind-protect element object cache
-
-unwind_prot.h
-       - uwp_init: extern declaration
-
-shell.c
-       - main: call uwp_init right after calling cmd_init -- initialize all the
-         object caches at the same place
-
-lib/malloc/table.[ch]
-       - mlocation_table: new table to keep track of allocation locations by
-         file and line, functions to initialize table, record an allocation,
-         and dump the table to stderr
-       - mregister_alloc: call mlocation_register_alloc to record the location
-         (source file/line) for each allocation to pinpoint malloc hot spots
-         by number of calls.  More detail than gprof
-
-parse.y
-       - set_line_mbstate: replace free/xmalloc pair with xrealloc call
-       - read_token_word: call alloc_word_desc instead of xmalloc so we can take
-         advantage of the WORD_DESC cache
-
-                                  4/28
-                                  ----
-execute_cmd.c
-       - execute_simple_command: if command execution fails because the command
-         is a directory, and the `autocd' option is set, add a `--' argument
-         to the constructed `cd' command to protect against command names with
-         the same name as options to `cd'.  Report and fix from
-         isabella parakiss <izaberina@gmail.com>
-
-                                  4/30
-                                  ----
-jobs.c
-       - printable_job_status, j_strsignal: change calls to strcpy and sprintf
-         that write to retcode_name_buffer to use strncpy and snprintf to
-         avoid buffer overflows caused by malicious translations.  Bug and fix
-         from Trammell Hudson <Trammell.Hudson@twosigma.com>
-
-                                   5/1
-                                   ---
-strtrans.c
-       - ansicstr: make sure the buffer is at least 12 bytes to ensure enough
-         space for any eventual call to u32cesc for one multibyte char
-
-                                   5/4
-                                   ---
-jobs.c
-       - wait_for: if an interactive shell is running a loop and waiting for
-         a non-builtin command to exit, and the command exits due to SIGINT,
-         act as if the shell received the SIGINT as well and break the loop.
-         This matches the behavior when the shell is running a builtin command
-         in a loop, and when running a non-builtin command outside a loop, and
-         seems more broadly useful than running the trap handler over and over
-         again.  Report originally from Kaz Kylheku <kkylheku@gnu.org>
-
-builtins/set.def
-       - unset_builtin: use different variables for keeping the state of the
-         -f and -v options than the loop uses to decide whether or not to
-         treat a name as a function or a variable.  Fixes problem with
-         unset_function setting `sticking' after you unset a function when
-         invoked with no options.  Bug report from Dreamcat4
-         <dreamcat4@gmail.com>
-
-shell.c
-       - open_shell_script: set running_shell_script to 1, set to 0 in every
-         other case (new variable)
-       - main: when checking whether or not to call start_debugger, test
-         running_shell_script instead of dollar_vars[1].  The goal is to not
-         invoke the debugger for interactive shells but allow it to run for
-         things like `bash --debugger -i /tmp/script'.  Problem reported by
-         Rocky Bernstein <rocky@gnu.org>
-
-lib/readline/histexpand.c
-       - history_event_delimiter_chars: new (as yet undocumented) variable
-         containing by default characters that can delimit a history event
-         specifier without requiring a `:': "^$*%-" as the documentation has
-         always said.  Fixes bug reported by Anders Granlund
-         <anders.granlund.0@gmail.com>
-
-                                  5/10
-                                  ----
-lib/glob/gmisc.c
-       - match_pattern_char, match_pattern_wchar: if passed an empty string,
-         return a match if the first character of the pattern is `*'
-
-subst.c
-       - pat_subst: change to allow empty strings to be replaced as long as
-         pattern matches empty string.  Report and fix from isabella parakiss
-         <izaberina@gmail.com>
-
-                                  5/12
-                                  ----
-lib/sh/strtrans.c
-       - ansic_wshouldquote: make behavior consistent in the event of an
-         invalid multibyte sequence: return 1 to the caller so the string
-         will be $'...' quoted
-
-builtins/cd.def
-       - cd_builtin: print the right error message even if printable_filename
-         changes errno (e.g., EILSEQ)
-
-lib/sh/shquote.c
-       - sh_backslash_quote: in multibyte locales, even if is_basic does not
-         return true, backslash-quote an ASCII character that backslash_table
-         says should be quoted.  Part of fix for bug reported by Igor
-         Bogomazov <ygrex@ygrex.ru>
-
-bashline.c
-       - directory_exists: new function, dequotes the string argument, removes
-         any trailing slash, and returns true if the result is a valid
-         existing filename
-       - bash_filename_stat_hook,bash_directory_completion_hook: use
-         directory_exists instead of calling lstat/stat on the quoted
-         directory name.  Rest of fix for bug reported by Igor Bogomazov
-         <ygrex@ygrex.ru>
-
-                                  5/15
-                                  ----
-aclocal.m4
-       - BASH_CHECK_MULTIBYTE: when checking for locale_charset, add $LIBINTL
-         to $LIBS.  If we're using the included lib/intl/libintl.a, it will
-         include a version of locale_charset
-
-                                  5/17
-                                  ----
-lib/readline/bind.c
-       - sv_isrchterm: make sure we check for v[end] == 0 while in the loop
-         looking for whitespace.  Bug report and fix from Sergio Durigan
-         Junior <sergiodj@sergiodj.net>
-
-lib/sh/shmbchar.c
-       - mbstrlen,mbsmbchar: move calculation of MB_CUR_MAX out of loop;
-         calculate it once at beginning
-
-lib/sh/mbscmp.c
-       - mbscmp: move calculation of MB_CUR_MAX out of loop; calculate it once
-         at beginning
-
-lib/sh/mbscasecmp.c
-       - mbscasecmp: move calculation of MB_CUR_MAX out of loop; calculate it
-         once at beginning
-
-lib/sh/shquote.c
-       - sh_backslash_quote: move calculation of MB_CUR_MAX out of loop;
-         calculate it once at beginning
-
-lib/sh/casemod.c
-       - sh_modcase: move calculation of MB_CUR_MAX out of loop; calculate it
-         once at beginning
-
-subst.c
-       - expand_word_internal: move calculation of MB_CUR_MAX out of loops;
-         calculate it once at beginning of function (XXX should use
-         locale_mb_cur_max)
-
-                                  5/22
-                                  ----
-lib/readline/rlmbutil.h
-       - _rl_wcwidth: new function, short-circuits wcwidth calls for ASCII
-         printable characters, returns 1 for those
-       - WCWIDTH: call _rl_wcwidth instead of wcwidth
-
-lib/readline/display.c
-       - rl_redisplay: move calculation of MB_CUR_MAX out of loop; calculate
-         it once at beginning.  Report and patch from Ole Laursen
-         <ole.laursen@gmail.com>
-
-                                  5/24
-                                  ----
-lib/readline/text.c
-       - rl_insert: change to attempt to batch-insert pending typeahead (not
-         pushed input or input from a macro) that maps to rl_insert.  An
-         attempt to suppress redisplay until readline reads all typeahead --
-         pasted input, for instance.  Inspired by report from Ole Laursen
-         <ole.laursen@gmail.com>.  XXX - need to make this a bindable
-         variable; already controlled by _rl_optimize_typeahead
-
-lib/readline/rlprivate.h
-       - _rl_optimize_typeahead: extern declaration
-
-lib/readline/doc/{hstech.texi,history.3}
-       - next_history: clarify under what circumstances the history offset is
-         incremented; suggestion from Glenn Golden <gdg@zplane.com>
-
-print_cmd.c
-       - print_arith_command: should be compiled in if either DPAREN_ARITHMETIC
-         or ARITH_FOR_COMMAND is defined.  Report from Flavio Medeiros
-         <flaviomotamederios@gmail.com>
-
-flags.c
-       - change_flag: new variable verbose_flag, set when `v' flag modified;
-         sets value of echo_input_at_read correspondingly
-
-flags.h
-       - verbose_flag: new extern declaration
-
-shell.c
-       - long_options: --verbose now sets verbose_flag
-       - main: set echo_input_at_read from verbose_flag after parsing any
-         long options
-
-builtins/fc.def
-       - fc_builtin: don't unwind-protect echo_input_at_read directly; set it
-         to 1 before calling fc_execute_file as before, and reset it to value
-         of global verbose_flag using set_verbose_flag called from an
-         unwind_protect.  Report from isabella parakiss <izaberina@gmail.com>
-
-builtins/shopt.def
-       - shopt_set_debug_mode: new function, called when the extdebug shell
-         option changes.  Right now, it sets function_trace_mode when extdebug
-         is enabled, and turns off when extdebug is disabled.  The
-         documentation has always said that shopt does this.  Report from
-         Peng Yu <pengyu.ut@gmail.com>
-
-                                  5/27
-                                  ----
-findcmd.[ch]
-       - add support for EXECIGNORE shell variable, list of extglob patterns
-         that prevent matching filenames from being identified as executable
-         files
-
-variables.c
-       - EXECIGNORE: arrange for findcmd.c:setup_exec_ignore to be called when
-         $EXECIGNORE changes
-
-variables.h
-       - sv_execignore: extern declaration
-
-doc/{bash.1,bashref.texi}
-       - document EXECIGNORE variable
-
-                                  5/28
-                                  ----
-lib/readline/callback.c
-       - rl_callback_sigcleanup: new function, cleans up and unsets any state
-         rl_callback_read_char uses.  Intended to be used after a signal
-
-lib/readline/signals.c
-       - _rl_handle_signal: call rl_callback_sigcleanup on SIGINT.  Fixes bug
-         reported to python group by Martin Panter <vadmium+floss@gmail.com>
-
-lib/readline/isearch.c
-       - _rl_isearch_cleanup: now a public function so rl_callback_cleanup can
-         call it
-
-lib/readline/search.c
-       - _rl_nsearch_cleanup: now a public function so rl_callback_cleanup can
-         call it
-
-lib/readline/rlprivate.h
-       - _rl_[in]search_cleanup: extern declarations
-
-lib/readline/readline.h
-       - rl_callback_sigcleanup: new extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_callback_sigcleanup: documented
-
-lib/readline/readline.h
-       - bump readline version to 7.0 due to addition of rl_callback_sigcleanup
-
-                                  5/29
-                                  ----
-builtins/declare.def
-       - declare_internal: if we are trying to change attributes or value for
-         a nameref variable whose value points to an unset variable, make
-         sure we create a new variable whose name is the value of the nameref
-         variable. That is,
-
-               declare -n foo=bar
-               unset foo       # unsets bar
-               declare -i foo
-
-         should create a (invisible) variable named `bar' with the integer
-         attribute.  Fixes problem reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-builtins/set.def
-       - unset_builtin: if we find a nameref variable when we look it up with
-         find_variable (the returned variable has a name different from what
-         we looked up), make sure we use that new name for the rest of the
-         function rather than rely on unbind_variable to do the same thing as
-         find_variable.  Fixes problem reported by Greg Wooledge
-         <wooledg@eeg.ccf.org>
-       - unset_builtin: if we try to unset a nameref variable whose value is
-         not a set variable, make sure we don't try to unset the nameref
-         itself, but rather the variable it points to.  This ensures that the
-         following always works as it should
-
-               declare -n foo=bar
-               unset foo       # unsets bar and leaves foo unchanged
-
-lib/readline/funmap.c
-       - vi-insertion-mode: make sure it maps to rl_vi_insert_mode, which is
-         actually what the `i' keybinding in vi_movement_keymap maps to.
-         Cosmetic fix from isabella parakiss <izaberina@gmail.com>
-
-                                   6/2
-                                   ---
-general.c
-       - conf_standard_path: moved get_standard_path here from command.def; made
-         public function
-
-general.h
-       - conf_standard_path: extern declaration
-
-
-                                   6/3
-                                   ---
-parse.y
-       - parse_matched_pair: make sure that command substitution constructs
-         within ${...} expansions are parsed as such using parse_comsub, so
-         the P_FIRSTCLOSE flag doesn't stop parsing if a right brace appears
-         within the comsub.  Report from Christos Zoulas <christos@zoulas.com>
-
-findcmd.c
-       - search_for_command: take two new flags for FLAGS arg: CMDSRCH_STDPATH,
-         which means use the command -p path, and CMDSRCH_TEMPENV, currently
-         unused.  Existing flag value of 1 now CMDSRCH_HASH
-       - search_for_command: don't set `path' to NULL if it wasn't found in
-         the temporary environment; we can use it later
-       - search_for_command: look for the hashed file if temp_path == 0, not
-         if we set path back to 0 (or path lookup failed)
-       - search_for_command: just call find_user_command_in_path with a
-         pathlist argument that's set depending on the flags passed
-       - find_in_path: new function, just calls find_user_command_in_path at 
-         this point
-       - search_for_command: don't put non-existent files into the hash table
-
-findcmd.h
-       - CMDSRCH_*: new flags for search_for_command
-       - find_in_path: extern declaration
-
-execute_cmd.c
-       - execute_disk_command: check for CMD_STDPATH and call search_for_command
-         with CMDSRCH_STDPATH if it's set
-
-builtins/command.def
-       - command_builtin: if -p given without -v or -V, set the CMD_STDPATH
-         flag in the simple command we construct from the rest of the
-         argument list.  This fixes the command -p cmd issue with changing
-         $PATH for the duration  of `cmd's execution reported by
-         <sdowdy@rap.ucar.edu>
-
-builtins/common.h
-       - CDESC_STDPATH: new flag for describe_command; means to use standard
-         path for command -pv or -pV
-
-builtins/command.def
-       - command_builtin: if -p given with -v or -V, pass the CDESC_STDPATH
-         flag to describe_command
-
-builtins/type.def
-       - describe_command: if given the CDESC_STDPATH flag, use find_in_path
-         with the conf_standard_path() result. Since `all' will never be on
-         with this flag, at least not yet, we can allocate and free the path
-         list.  Fixes the bug of a temporary environment value for PATH
-         preceding a `command -pv' or `command -pV' persisting when the
-         command finishes and means we use fewer unwind-protects
-
-                                   6/4
-                                   ---
-Makefile.in (plus other Makefile.ins)
-       - VPATH: remove `.' from VPATH value.  It's not needed any more and it
-         trips a GNU make 4.1 bug on Cygwin.  Report and fix from Eric Blake
-         <eblake@redhat.com>
-
-lib/readline/histfile.c
-       - history_tempfile: new function, takes history file name as template
-         and creates a temp file name including the PID
-       - history_truncate_file, history_do_write: instead of creating backup
-         and restoring it on failure, use history_tempfile to create a temp
-         file name, write to it, then rename to original history filename
-         (handling symlinks using history_restore()).  Original report and
-         patch from Russell Stuart <russell-savannah@stuart.id.au>
-
-doc/{bash.1,bashref.texi}
-       - ulimit: clarify that -c and -f are in increments of 512 bytes when
-         in posix mode.  Fix from Robin Johnson <robbat2@gentoo.org> via
-         <vapier@gentoo.org>
-
-                                   6/9
-                                   ---
-execute_cmd.c
-       - execute_in_subshell: don't call restore_default_signal for the exit
-         trap, reset_signal_handlers already does the right thing and keeps
-         the trap string around; no need to kill trap string.  Bug report
-         from Miroslav Koskar <mk@mkoskar.com>
-
-                                  6/11
-                                  ----
-nojobs.c
-       - find_proc_slot: now takes pid as an argument to avoid finding old
-         procs when pids wrap around
-       - add_pid: pass pid to find_proc_slot to avoid multiple instances of
-         the same pid in the list when pids wrap around.  Fixes bug reported
-         by Roy Keene <rkeene@rkeene.org>
-
-execute_cmd.c
-       - REAP: test for job_control == 0 also to determine whether or not
-         to call reap_dead_jobs, since shells without job control enabled
-         don't report on background process status
-
-doc/bash.1,lib/readline/doc/hsuser.texi
-       - history: clarify documentation of -a option to note that it will not
-         append the same line to the history file more than once.  Fixes
-         problem reported by Reuben Thomas <rrt@sc3d.org>
-
-                                  6/12
-                                  ----
-execute_cmd.c
-       - execute_in_subshell: don't bother decrementing subshell_level before
-         this returns; the caller will just exit.  This means that
-         $BASH_SUBSHELL will have consistent values in the subshell and any
-         subsequent exit trap.  Fixes bug reported by Miroslav Koskar
-         <mk@mkoskar.com>
-       - shell_execve: before longjmp to subshell_top_level, call reset_parser
-         to free up any input line and stack of pushed strings
-
-parse.y
-       - mk_alexpansion: if the last character of the alias is a shell
-         metacharacter, don't add a space to the string following the alias
-         value, since that will change the meaning of the command.  THIS IS
-         NOT BACKWARDS COMPATIBLE AND MAY REQUIRE REVERTING. Inspired by an
-         email message from Jilles Tjoelker <jilles@stack.nl> to austin
-         group
-
-                                  6/13
-                                  ----
-subst.c
-       - dequote_string: don't turn strings consisting of a single CTLESC
-         into empty strings; return them unmodified.  The idea is that there
-         is nothing to quote.  This means that something like
-               c=$'\001'
-               x=$c
-         results in x containing '\001' when IFS=$'\001'.  See if this will
-         cause problems by adding a debugging statement in the code
-
-                                  6/15
-                                  ----
-parse.y
-       - CHECK_FOR_RESERVED_WORD: don't return ESAC when you read `esac'
-         after a `|' while in a case pattern list (parser_state & PST_CASEPAT).
-         This is Posix grammar rule 4
-         (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02)
-
-                                  6/16
-                                  ----
-jobs.c
-       - wait_for: make sure we queue SIGCHLD signals if a SIGCHLD trap
-         handler is running (signal_in_progress or IMPOSSIBLE_TRAP_HANDLER),
-         since we allow recursive trap invocations now
-       - wait_for: make sure we treat SIGCHLD as trapped if the trap handler
-         is set to IMPOSSIBLE_TRAP_HANDLER so we don't miss signals during
-         calls to run_sigchld_trap()
-
-trap.c
-       - run_pending_traps: since we allow recursive trap handler invocations,
-         make sure we set pending_traps[SIGCHLD] to 0 while we mark the
-         signal handler in progress (SIG_INPROGRESS) and don't reset it to 0
-         after run_sigchld_trap returns in case more SIGCHLDs have been
-         queued while it's running
-
-                                  6/22
-                                  ----
-lib/readline/readline.c
-       - _rl_dispatch_subseq: if we shadowed any function, not just self-
-         insert, bind that function to the key we shadowed and dispatch on it.
-         This preserves and dispatches off the original key, not ANYOTHERKEY,
-         and makes sure we are dispatching from a keymap with the right key
-         binding.  Fixes bug reported by Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  6/23
-                                  ----
-bashline.c
-       - attempt_shell_completion: don't read past the end of rl_line_buffer
-         while skipping assignment statements before command names.  Fix for
-         bug reported by Hanno Böck <hanno@hboeck.de>
-
-lib/readline/parens.c
-       - _rl_enable_paren_matching: make paren matching work in vi insert
-         mode. Really, this time.  Bug report from Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  6/29
-                                  ----
-parse.y
-       - parse_comsub: when starting to parse a word, make sure that we set
-         lex_rwlen to 0 along with lex_wlen if we are in a position where we
-         can read a reserved word.  Fixes bug reported by  Nathan Neulinger
-         <nneul@neulinger.org>
-
-                                  6/30
-                                  ----
-sig.h
-       - include <signal.h> unconditionally and rely on guards in sig.h to
-         keep from including it more than once.  Irix 6.5 defines SIG_DFL
-         in other files and defeats the test of SIG_DFL.  Fixes bug
-         reported by Klaus Ziegler <klausz@haus-gisela.de>
-
-alias.c
-       - ALIAS_HASH_BUCKETS: table size increased to 64
-
-                                   7/7
-                                   ---
-
-{jobs,nojobs}.c
-       - wait_sigint_cleanup: new function, to be called by longjmp targets
-         for wait_intr_buf. Performs any necessary cleanup of internal waitchld
-         state before going back to top level
-
-jobs.h
-       - wait_sigint_cleanup: new extern declaration
-
-builtins/wait.def
-       - wait_builtin: call wait_sigint_cleanup after longjmp back to
-         wait_intr_buf on interrupt
-
-[bash-4.4-alpha frozen]
-
-                                   7/7
-                                   ---
-bashline.c
-       - attempt_shell_completion: when skipping assignment statements, don't
-         skip past rl_point to find the word on which to perform programmable
-         completion.  Fixes bug reported by Hanno Böck <hanno@hboeck.de>
-
-                                  7/10
-                                  ----
-
-pcomplib.c
-       - compspec_copy: set the refcount on the copy to 1, since it's a freshly
-         allocated copy and there are no other pointers to it.  Fixes memory
-         leak from gen_progcomp_completions
-
-lib/readline/complete.c
-       - printable_part: if the pathname passed is just `/', just return it
-         instead of potentially reading before the `/'.  Fixes bug reported
-         by Hanno Böck <hanno@hboeck.de>
-
-                                  7/11
-                                  ----
-support/man2html.c
-       - change calls to malloc to use xmalloc; provide standard xmalloc
-         definition.  Report from Bill Parker <wp02855@gmail.com>
-
-builtins/wait.def
-       - wait_intr_flag: set to denote validity of wait_intr_buf as target
-         for longjmp; reset by WAIT_RETURN macro; should always be 0 when
-         wait_builtin returns
-
-quit.h
-       - CHECK_WAIT_INTR: now also checks wait_intr_flag to ensure valid state
-         of wait_intr_buf before sh_longjmp
-
-{jobs,nojobs}.c
-       - wait_intr_flag: extern declaration for use by CHECK_WAIT_INTR
-
-sig.c
-       - wait_intr_flag: set back to 0 every place the shell resets state after
-         a jump to top_level
-       - sigint_sighandler: only set wait_signal_received if wait_intr_flag
-         indicates that the wait builtin has correctly set wait_intr_buf.
-         Final fix for bug reported by Ondrej Oprala <ooprala@redhat.com>
-
-subst.c
-       - parameter_brace_expand: fix so that ${!vvv@} is not interpreted as
-         introducing a `@' operator, but instead retains its meaning as all
-         variables whose name begins with vvv.  Fixes bug reported by
-         konsolebox <konsolebox@gmail.com>
-
-                                  7/14
-                                  ----
-execute_cmd.c
-       - execute_connection: remove the fork optimization from and AND_AND
-         and OR_OR cases; it has trouble with `a && b && c', since the `&&'
-         is left-associative.  Putting that code here can result in unwanted
-         fork optimizations since the `b' will end up as `second' on a
-         recursive call to execute_command.  Bug reported by Mike Frysinger
-         <vapier@gentoo.org>
-
-builtins/evalstring.c
-       - optimize_fork: moved code from execute_connection to here; checks
-         whether the RHS of a && or || passes the suppress_fork() tests and
-         turns on the NO_FORK bit if so
-       - parse_and_execute: if suppress_fork() tests fail, check whether the
-         command to be executed is a connection and attempt to optimize the
-         fork for the right side using optimize_fork().  The key is dealing
-         with the entire command passed to `bash -c' or `eval'
-
-builtins/common.h
-       - optimize_fork: new extern declaration
-
-execute_cmd.c
-       - execute_command_internal: enable code put in to undo redirections
-         before exiting the shell due to `set -e' in the case of a shell
-         function that gets command-not-found or a syntax error.  Reported
-         back in May, 2014 by Mark Ferrell <major@homeonderanged.org>
-
-bashhist.c
-       - bash_history_inhibit_expansion: enable change from 1/10 that skips
-         over history expansion character in command and process
-         substitution
-
-                                  7/15
-                                  ----
-lib/readline/{history,undo}.c
-       - replace_history_data now _hs_replace_history_data
-
-                                  7/16
-                                  ----
-lib/readline/readline.c
-       - make sure _rl_to_lower doesn't ever get characters that are outside
-         of its valid range by casting arg to unsigned char
-
-lib/readline/colors.h
-       - change completion prefix color (C_PREFIX) to be the same as C_SOCK,
-         which is less likely to collide with file type colorings (magenta)
-
-lib/readline/complete.c
-       - fnprint: now takes an additional argument: the full, expanded pathname
-         corresponding to the `toprint' argument
-       - fnprint: don't zero out prefix_bytes if we're not printing the
-         ellipisis but we still want to use prefix_bytes for displaying
-         the common prefix in a color
-       - print_filename: move colored-stats display responsibility into fnprint
-       - fnprint: change so colored-prefix and colored-stats can cooperate
-         and display filenames with multiple colors: one for the prefix and
-         one for the file type.  The prefix is displayed in the prefix color
-         and the remainder of the pathname, if any, is displayed in the color
-         corresponding to the file type.  Report and suggestion from Mike
-         Frysinger <vapier@gentoo.org>
-
-                                  7/17
-                                  ----
-lib/readline/readline.[ch]
-       - rl_readline_state: now unsigned long, prepare for more than 32 states
-
-
-                                  7/18
-                                  ----
-lib/readline/history.h
-       - history_offset: now declared here, was always a global variable
-       - copy_history_entry: now declared here, part of the public interface
-       - alloc_history_entry: now declared here, part of the public interface
-
-                                  7/20
-                                  ----
-lib/readline/readline.h
-       - RL_STATE_CHARSEARCH: new state, for vi mode character search.  Was
-         previously handled by simply setting _rl_callback_func
-
-lib/readline/vi_mode.c
-       - rl_domove_motion_callback: split into two functions, remaining code
-         after _rl_dispatch call goes into new function
-         _rl_vi_domove_motion_cleanup
-       - rl_vi_char_search: set RL_STATE_CHARSEARCH
-       - rl_vi_char_search: sets `i2' member of callback data to the key used
-         to invoke the char search
-       - _rl_vi_callback_char_search: unset RL_STATE_CHARSEARCH after reading
-         the character to find
-       - _rl_vi_domove_motion_cleanup: make sure RL_STATE_VIMOTION is unset in
-         all cases where this function returns
-       - _rl_vi_domove_motion_cleanup: use `end' member of vi motion context
-         as value of rl_end to restore after adding blank at end of line in
-         rl_domove_motion_callback; avoids need to keep `old_end' and somehow
-         pass it between the two functions
-
-lib/readline/rlprivate.h
-       - _rl_vi_domove_motion_cleanup: new extern declaration
-
-lib/readline/callback.c
-       - rl_callback_read_char: handle RL_STATE_CHARSEARCH, including case
-         where char search is vi motion command for d/c/y/m and RL_STATE_VIMOTION
-         is set when this is called.  Last of set of fixes for bug reported
-         by Carlos Pita <carlosjosepita@gmail.com> with vi-mode `dty' command
-         in callback mode
-
-                                  7/21
-                                  ----
-subst.c
-       - command_substitute, process_substitute: add QUIT call in the child
-         after restoring original signal handlers to catch post-fork SIGINT
-         or terminating signal
-
-jobs.c,nojobs.c
-       - make_child: after forking, clear interrupt_state in child
-         before restoring signal mask so children get their own set of
-         interrupts
-
-                                  7/22
-                                  ----
-lib/sh/shquote.c
-       - sh_double_quote: since all uses of the return value from this function
-         are for display and not subject to subsequent expansion, we don't
-         need to protect CTLESC and CTLNUL with CTLESC.  Bug report and fix
-         from isabella parakiss <izaberina@gmail.com>
-
-parse.y
-       - decode_prompt_string: need to protect literal instances of CTLESC
-         and CTLNUL with CTLESC, even if they are not coming out of one of
-         the backslash-expansions
-
-subst.c
-       - make_internal_declare: fixed memory leak; make_internal_declare should
-         free the memory it allocates to construct the word list.  From Red
-         Hat bug 1245233; https://bugzilla.redhat.com/show_bug.cgi?id=1245233
-
-lib/readline/readline.c
-       - _rl_dispatch_subseq: when checking whether an ESC in vi insert mode
-         should be treated as part of a key sequence or as a single char,
-         make sure we are getting input from the keyboard before we check
-         _rl_input_queued().  If we are getting input from a macro, this
-         causes a needless delay.  Report from Carlos Pita
-         <carlosjosepita@gmail.com>
-
-                                  7/23
-                                  ----
-input.c
-       - save_bash_input: before checking to see whether or not a new fd has a
-         stale associated buffer, make sure that the new fd is within bounds.
-         Bug report and fix from Alexey Makhalov <makhaloff@gmail.com>
-
-
-                                  7/24
-                                  ----
-doc/{bash.1,bashref.texi}
-       - note that the `return' builtin accepts arguments beginning with `-'
-         without requiring `--'
-
-                                  7/27
-                                  ----
-examples/loadables/Makefile.in
-       - add variables and targets to support `make install'; installs
-         supported builtins in $(libdir)/bash
-
-                                  7/28
-                                  ----
-lib/readline/{readline,rlprivate}.h, lib/readline/display.c
-       - rearrange some structure members for better alignment and to reduce
-         padding.  Fix from <git-dpa@aegee.org>
-
-tests/run-*
-       - use BASH_TSTOUT instead of hardcoded /tmp/xx as output file
-
-trap.[ch]
-       - maybe_set_error_trap: set a trap for the ERR trap if it is not already
-         trapped; similar to maybe_set_debug_trap back from 4/10
-
-lib/malloc/malloc.c
-       - internal_free: make sure `ubytes' is initialized if MALLOC_WATCH is
-         defined and we'll be passing it to _malloc_ckwatch.  Report from
-         Flavio Medeiros <flaviomotamederios@gmail.com>
-
-execute_cmd.c
-       - execute_function: use maybe_set_error_trap in the same way as
-         maybe_set_debug_trap.  Fixes bug reported by David Waddell
-         <David.Waddell@owmobility.com>
-
-                                  7/29
-                                  ----
-jobs.c
-       - wait_for: no longer need to call job_signal_status when checking
-         whether a comsub shell reaped a child that died due to SIGINT; code
-         now uses child_caught_sigint
-
-                                  7/30
-                                  ----
-builtins/exec.def
-       - exec_builtin: after call to restore_original_signals, need to call
-         default_tty_job_signals to undo changes done by initialize_job_signals.
-         Fix for problem reported by Andreas Schwab <schwab@suse.de>
-
-doc/{bash.1,bashref.texi}
-       - clarify definition of metacharacter to explicitly include newline;
-         prompted by report from George Gallo <georgeggallo@gmail.com>
-
-                                   8/3
-                                   ---
-lib/readline/search.c
-       - _rl_free_history_entry: should be void, not int.  Report from
-         Dilyan Palauzov <dilyan.palauzov@aegee.org>
-
-general.h
-       - sh_load_func_t, sh_unload_func_t: new function pointer types, used by
-         enable for load and unload hook functions
-
-builtins/enable.def
-       - dyn_load_builtin: attempt to execute a function named
-         BUILTIN_builtin_load, where BUILTIN is the name of the command being
-         loaded.  If that function returns 0, the load fails
-       - dyn_unload_builtin: attempt to execute a function named
-         BUILTIN_builtin_unload, where BUILTIN is the name of the command
-         being unloaded.  It offers a dynamic builtin a way to clean up after
-         itself.  Inspired by suggestion from Piotr Grzybowski
-         <narsil.pl@gmail.com> in response to a bug report from isabella
-         parakiss <izaberina@gmail.com>
-
-                                   8/6
-                                   ---
-lib/readline/colors.[ch]
-       - _rl_print_color_indicator: now takes `const char *' argument
-
-lib/readline/complete.c
-       - colored_stat_start: now takes `const char *' argument
-
-lib/malloc/table.h
-       - ma_table_t: `file' member is now `const char *'
-
-lib/malloc/table.c
-       - mlocation_register_alloc: make sure variable assigned to `file' in
-         ma_table_t is of type `const char *'.  Fixes from Dilyan Palauzov
-         <dilyan.palauzov@aegee.org>
-
-lib/termcap/termcap.[ch]
-       - tputs: should return int instead of void
-
-lib/readline/readline.h
-       - RL_STATE_DONE: correct value, avoid collision
-
-lib/readline/vi_mode.c
-       - _rl_vi_redoing: now global, added _rl_ prefix to `vi_redoing'
-
-lib/readline/readline.c
-       - _rl_subseq_result: call _rl_dispatch_subseq instead of rl_dispatch to
-         avoid changing _rl_dispatching_keymap
-       - _rl_subseq_result: in the -2 case, set _rl_dispatching_keymap to the
-         map passed as an argument.  Without this, vi mode doesn't call
-         rl_vi_set_last when it should
-       - _rl_dispatch_subseq: if redoing a vi mode command with `.'
-         (_rl_vi_redoing != 0) in callback mode and we're indirecting into
-         another keymap that has shadowed the key corresponding to the command
-         we are redoing, just call _rl_subseq_result immediately: vi redo
-         doesn't need to read any additional input, and rl_vi_redo assumes
-         that a single call to rl_dispatch is sufficient.  Fixes bug reported
-         by Carlos Pita <carlosjosepita@gmail.com>
-
-                                   8/7
-                                   ---
-subst.c
-       - parameter_brace_expand: if a substitution (parameter expansion) error
-         occurs, and shell_compatibility_level is <= 43, return expansion error
-         as in all previous versions.  If shell_compatibility_level is > 43,
-         a posix-mode non-interactive shell will consider this a fatal error.
-         Problem reported by Christian Neukirchen <chneukirchen@gmail.com>
-
-doc/bashref.texi
-       - documented that word expansion errors cause fatal errors in posix mode
-         non-interactive shells
-
-                                   8/8
-                                   ---
-subst.h
-       - SD_COMPLETE: skip_to_delim being called as part of word completion
-       - SX_COMPLETE: one of the string_extract functions being called as
-         part of word completion
-
-bashline.c
-       - find_cmd_start,find_cmd_end,find_cmd_name: call skip_to_delim with
-         SD_COMPLETE flag
-
-subst.c
-       - skip_double_quoted: takes new flags argument; changed callers
-       - skip_double_quoted: if flags argument includes SX_COMPLETE, pass it
-         to extract_command_subst
-       - extract_command_subst: if flags&SX_COMPLETE, call
-         extract_delimited_string instead of xparse_dolparen, since completion
-         may call this for unterminated command substitutions.  Fixes
-         (imperfectly) bug reported by Ingo Ruhnke <grumbel@gmail.com>
-       - skip_to_delim: if passed the SD_COMPLETE flag, pass the SX_COMPLETE
-         flag to skip_double_quoted 
-       - char_is_quoted: pass SX_COMPLETE flag to skip_double_quoted
-       - unclosed_pair: pass SX_COMPLETE flag to skip_double_quoted
-
-                                   8/9
-                                   ---
-execute_cmd.c
-       - time_command: catch longjmps to top_level and print command timing
-         statistics even after a jump to top_level.  Fixes issue reported by
-         Sam Watkins <sam@nipl.net>
-
-                                  8/10
-                                  ----
-config-top.h
-       - OPENLOG_OPTS: if SYSLOG_HISTORY is defined, define to LOG_PID, so
-         each message is tagged with the pid
-
-bashhist.h
-       - bash_syslog_history: the first time it's called, call openlog with
-         OPENLOG_OPTS and SYSLOG_FACILITY
-
-                                  8/11
-                                  ----
-doc/{bash.1,bashref.texi}
-       - GROUPS,FUNCNAME: change description to note that assignments are
-         silently ignored, but do not return an error (which would constitute
-         an assignment error and cause posix mode shells to abort).  Problem
-         pointed out by Grzegorz Bajson <gbajson@gmail.com>
-
-                                  8/12
-                                  ----
-subst.c
-       - parameter_brace_expand_indir: if the value of the indirectly expanded
-         variable isn't something that the shell would expand if it were inside
-         ${}, error out right away before calling parameter_brace_expand_word.
-         Fixes problem reported by isabella parakiss <izaberina@gmail.com>
-       - parameter_brace_expand: handle returning &expand_wdesc_error or
-         &expand_wdesc_fatal from parameter_brace_expand_indir in case it does
-         that someday
-
-                                  8/13
-                                  ----
-jobs.c
-       - {save,restore}_pipeline: saved_pipeline now a linked list of pipelines,
-         new ones allocated in save_pipeline and freed in restore_pipeline.
-         This allow multiple nested calls to save_pipeline (e.g., in traps
-         and then in process substitution).  Fix for bug reported by isabella
-         parakiss <izaberina@gmail.com>
-
-print_cmd.c
-       - named_function_string: if printing a function with the same name as a
-         reserved word, add the `function ' keyword before the name to avoid
-         parsing problems when trying to reuse it as input.  Fix for bug
-         reported by isabella parakiss <izaberina@gmail.com>
-
-                                  8/14
-                                  ----
-lib/readline/text.c
-       - rl_insert: when optimizing typeahead, make sure we set rl_last_func
-         ourselves if we set pending input, since the mainline code path
-         won't set rl_last_func if input is pending.  Fixes bug reported by
-         Hiroo Hayashi <hiroo.hayashi@computer.org>
-
-                                  8/15
-                                  ----
-builtins/type.def
-       - describe_command: if using the short description (CDESC_SHORTDESC) in
-         posix mode, describe posix special builtins as such.  Requested by
-         Stephane Chazelas <stephane.chazelas@gmail.com>
-
-builtins/enable.def
-       - BASH_LOADABLES_PATH: a colon-separated list of directories where bash
-         looks for loadable builtins specified as arguments to `enable -f'
-
-doc/{bash.1,bashref.texi}
-       - BASH_LOADABLES_PATH: document new shell variable
-
-configure.ac,Makefile.in,builtins/Makefile.in
-       - loadablesdir: set in configure, substitute into Makefiles.  Reserved
-         for future use
-
-                                  8/18
-                                  ----
-subst.c
-       - shell_expand_word_list: if make_internal_declare fails, make sure to
-         propagate that error return back and make the assignment statement
-         fail. Fixes seg fault reported by Sergey Tselikh <stselikh@gmail.com>
-
-                                  8/20
-                                  ----
-builtins/declare.def
-       - declare_internal: made a slight tweak to the warning message about
-         quoted compound assignments by printing it only if the array (indexed
-         or assoc) does not already exist
-
-                                  8/21
-                                  ----
-braces.c
-       - mkseq: call strvec_dispose before throw_to_top_level if we saw SIGINT
-         to avoid a memory leak
-
-trap.c
-       - maybe_set_return_trap: set the RETURN trap to string if it's not
-         already trapped, in the same way as the debug and error traps
-
-execute_cmd.c
-       - execute_function: use maybe_set_return_trap to allow functions to set
-         return traps that persist across calls even if function tracing is
-         enabled
-
-lib/readline/input.c
-       - rl_gather_tyi: make sure errno reset to 0 after select call, for
-         ioctl and read
-       - rl_gather_tyi: if read returns -1/EIO, return -1
-       - rl_read_key: if rl_gather_tyi returns -1/EIO, return READERR if in
-         RL_STATE_READCMD (reading command in readline_internal_char), EOF
-         if not (like rl_getc). Continue to return '\n' on other errors;
-         rl_done = 1 in any case.  Fix for issue reported by
-         Lubomir Rintel <lkundrak@v3.sk>
-
-lib/readline/{misc,text,vi_mode}.c
-       - fix return values from rl_read_key to handle < 0
-
-                                  8/22
-                                  ----
-
-parse.y
-       - parsing_redirection: macro that expands to true if the last read
-         token (always passed as an argument) is a redirection token that
-         will leave us reading a word that's the target of the redirection
-       - command_token_position: make sure that even if the parser state
-         indicates we are reading a simple command (PST_REDIRLIST), we do
-         not perform alias expansion on a WORD that is part of a redirection,
-         using parsing_redirection() to do so.  Fixes but reported to Red Hat
-         by Robert Alm Nilsson <rorialni@gmail.com>
-         https://bugzilla.redhat.com/show_bug.cgi?id=795795
-
-builtins/declare.def
-       - declare_internal: only print the warning now if the variable is not
-         already an array or if we are not creating an array with -a or -A,
-         cuts down the spurious warnings
-       - declare_internal: even if the rhs of the assignment looks like a
-         compound array, if we're not assigning to an existing array or we're
-         not creating an array, make it an array subscript assignment.  This
-         means things like declare a[1]='(foo)' and a[1]='(foo)' behave
-         identically
-
-builtins/help.def
-       - wdispcolumn: change use of displen and add new dispchars variable to
-         deal with locales where each wide character does not take up one
-         column position.  Fix for bug reported by Mingye (Arthur) Wang
-         <arthur200126@hotmail.com>
-
-                                  8/23
-                                  ----
-sig.c
-       - sigint_sighandler: if we get a SIGINT while this_shell_builtin ==
-         wait_builtin, perform the special handling only if wait_intr_flag
-         is non-zero, don't just use it to set wait_sigint_received.  This
-         makes sure we run bashline_set_event_hook.  Fixes bug reported by
-         isabella parakiss <izaberina@gmail.com>
-
-                                  8/25
-                                  ----
-subst.h
-       - SD_HISTEXP: new flag for skip_to_delim, indicates we are looking for
-         the history expansion character (special double quote handling)
-       - skip_to_delim: handle SD_HISTEXP flag, changes double quote handling
-         to be similar to history library: don't call skip_double_quote, make
-         sure single quotes aren't special in double quotes, but continue to
-         skip over $(), ${}, and other similar constructs
-
-                                  8/27
-                                  ----
-support/bash.pc.in
-       - new file, pkgconfig template for bash, installed to support nascent
-         loadable builtins dev environment
-
-examples/loadables/Makefile.inc
-       - new file, example Makefile with correct definitions for loadable
-         builtin development
-
-configure.ac
-       - headersdir: directory where headers get installed to support loadable
-         builtin development
-       - examples/loadables/Makefile.inc, support/bash.pc: create 
-
-Makefile.in
-       - INSTALLED_HEADERS, INSTALLED_BUILTINS_HEADERS, INSTALLED_INCFILES,
-         CREATED_HEADERS: new variables holding names of include files to
-         install into $(headersdir) for loadable builtin development
-       - install-headers,install-headers-dirs: new targets to support
-         installing headers into $(headersdir) and subdirectories for loadable
-         builtin development
-       - uninstall-headers: target to uninistall headers in $(headersdir)
-       - uninstall: call uninstall-headers whether or not install-headers
-         was done; add uninstall in examples/loadables
-       - install: add install in examples/loadables
-       - clean: add clean in examples/loadables
-
-examples/loadables/Makefile.in
-       - install-supported, install-unsupported: new targets, make install
-         chooses one based on $(SHOBJ_STATUS)
-       - install-supported: now cds to the top level build directory and
-         installs the header files
-       - install-supported: now installs Makefile.inc to $(loadablesdir) as
-         an example
-       - uninstall-supported,uninistall-unsupported: uninstall targets,
-         make uninstall chooses one based on $(SHOBJ_STATUS)
-
-                                  8/31
-                                  ----
-lib/glob/Makefile.in
-       - CPPFLAGS: move after ${INCLUDES} so library-specific include paths
-         take precedence.  This is what the other parts of the shell do.
-         Report from Poor Yorick <org.gnu.lists.bug-bash@pooryorick.com>
-
-builtins/read.def
-       - reset_alarm: cancel alarm before restoring signal handler to avoid
-         possible race condition.  Report and fix from Oleg Popov
-         <dev-random@mail.ru>
-
-subst.c
-       - string_extract_verbatim: if SEPARATORS is "'", don't short-circuit
-         to string_extract_single_quoted unless the SX_NOCTLESC flag is set.
-         Callers expect this function to honor CTLESC, even to quote a single
-         quote.  Fixes bug reported by isabella parakiss <izaberina@gmail.com>
-         and several others
-
-                                   9/2
-                                   ---
-include/chartypes.h
-       - TOCTRL: handle '?' by special-casing it to 0x7f.  Fixes a problem
-         with $'\c?' reported by Helmut Karlowski <helmut.karlowski@ish.de>
-
-redir.c
-       - write_here_string: don't word-split the here string document.  The
-         bash documentation has always said this doesn't happen, even though
-         bash has done so for years, and other shells that implement here-
-         strings don't perform any word splitting.  The practical effect is
-         that sequences of IFS characters are collapsed to spaces.  Fixes
-         bug reported by Clint Hepner <clint.hepner@gmail.com>
-
-                                   9/3
-                                   ---
-doc/{bash.1,bashref.texi}
-       - add \? to the list of backslash escapes expanded by $'...' ANSI-C
-         quoting.  It was expanded but not documented
-
-lib/readline/util.c
-       - _rl_audit_tty: updated from Red Hat patch
-
-lib/readline/readline.c
-       - HAVE_DECL_AUDIT_USER_TTY: correct #define check
-
-                                  9/13
-                                  ----
-shell.c
-       - read_from_stdin: make sure value set to 1 appropriately if the shell
-         is reading from standard input, as Posix seems to specify (?)
-
-lib/readline/kill.c
-       - _rl_copy_to_kill_ring: don't assume that rl_kill_ring has been
-         allocated if _rl_last_command_was_kill is non-zero; make sure it's
-         non-null before indexing into it
-
-                                  9/15
-                                  ----
-variables.c
-       - initialize_shell_variables: cope with a NULL env pointer.  Fixes bug
-         reported by ziyunfei <446240525@qq.com>
-
-                                  9/16
-                                  ----
-builtins/exec.def
-       - exec_builtin: if -c is supplied, pass an empty array instead of a NULL
-         pointer to shell_execve
-
-variables.c
-       - set_pwd: only believe $PWD if it begins with a slash; try to
-         canonicalize it and set it to physical path if canonicalization fails.
-         Reported by ziyunfei <446240525@qq.com>
-
-                                  9/17
-                                  ----
-subst.c
-       - do_compound_assignment: make sure to dispose of word list generated
-         by expand_compound_array_assignment; fixes memory leak reported in
-         https://bugzilla.redhat.com/show_bug.cgi?id=1264101
-
-variables.c
-       - adjust_shell_level: clamp the value of shell_level at 1000 and reset
-         there, instead of > 1000, since the itos replacement code doesn't
-         handle the value 1000.  Fixes bug reported by ziyunfei
-         <446240525@qq.com>
-
-shell.h,parse.y
-       - save_parser_state,restore_parser_state: now save and restore
-         redir_stack, short-circuiting if need_here_doc == 0.  If we save a
-         non-zero value for need_here_doc, we have to make sure there is
-         something valid for gather_here_documents to work on.  Fixes bug
-         reported by Brian Carpenter <brian.carpenter@gmail.com>
-
-                                  9/18
-                                  ----
-array.c
-       - array_to_assign: use ansic_shouldquote to check whether each element
-         value contains non-printable characters and use ansic_quote to
-         generate the value instead of using sh_double_quote unconditionally
-
-assoc.c
-       - assoc_to_assign: if either the key or the value of an associative
-         array element contains non-printable characters (ansic_shouldquote
-         returns true), use ansic_quote to quote them instead of using double
-         quotes unconditionally
-
-                                  9/19
-                                  ----
-subst.c
-       - pat_subst: handle REP being NULL.  Fixes bug reported by Brian
-         Carpenter <brian.carpenter@gmail.com>
-
-builtins/evalstring.c
-       - parse_string: if we get a longjmp to top_level with DISCARD as the
-         code (in which case we are going to go on), return -DISCARD to our
-         caller (always xparse_dolparen) after doing our own cleanup instead
-         of calling jump_to_top_level
-
-parse.y
-       - xparse_dolparen: if parse_string returns < 0, do the appropriate
-         cleanup and then jump_to_top_level with the negative of the return
-         value.  This allows us to do the appropriate parser cleanup in
-         case we're not going to exit the shell.  Fixes bug reported by Brian
-         Carpenter <brian.carpenter@gmail.com>
-
-subst.c
-       - extract_delimited_string: if a recursive call to one of the extract_
-         functions or a call to ADVANCE_CHAR leaves i past the end of the
-         string, cut the loop off at the end of the string.  Fixes bug
-         reported by Brian Carpenter <brian.carpenter@gmail.com>
-
-                                  9/20
-                                  ----
-subst.c
-       - get_var_and_type: return appropriate values if variable indirection
-         results in a NULL variable.  Fixes bug reported by Brian Carpenter
-         <brian.carpenter@gmail.com>
-
-lib/readline/history.c
-       - history_get_time: handle strtol overflows caused by malicious
-         modifications to timestamps in the history file.  Fixes issue
-         reported by rens@endoria.net
-
-                                  9/21
-                                  ----
-lib/readline/rlconf.h
-       - ENABLE_AUDIT_TTY_SUPPORT: now undefined (off) by default
-
-                                  9/24
-                                  ----
-jobs.c
-       - waitchld: if we get a SIGINT while waiting for a child to exit, but
-         the kernel doesn't interrupt the waitpid(2) call, assume the child
-         caught SIGINT if it exited for some reason other than SIGINT.  Fix
-         suggested by Stephane Chazelas <stephane.chazelas@gmail.com>
-
-input.c
-       - make_buffered_stream: use B_TEXT in buffered stream flags instead
-         of (typo) O_TEXT.  Report and fix from Eric Blake <eblake@redhat.com>
-
-                                  9/27
-                                  ----
-execute_cmd.c
-       - shell_execve: call reset_parser before calling initialize_subshell,
-         which calls delete_all_aliases.  reset_parser wants to free the
-         pushed string list, which has pointers back into the alias table
-         (use after free)
-       - execute_simple_command: if we fork for an async command, make sure
-         the child process increments shell_level before performing any
-         word expansions, so $BASH_SUBSHELL is incremented.  Fixes issue
-         reported by ziyunfei <446240525@qq.com>
-
-                                  10/1
-                                  ----
-builtins/kill.def
-       - kill_builtin: make -L equivalent to -l for compatibility with other
-         (Linux) versions of kill
-
-doc/{bash.1,bashref.texi}
-       - kill: document new `-L' option
-
-                                  10/2
-                                  ----
-[bash-4.4-beta frozen]
-
-                                  10/5
-                                  ----
-doc/{bash.1,bashref.texi}
-       - LC_TIME: document that the shell recognizes it and calls setlocale
-         when it changes; and that the shell uses it for time formatting
-
-                                  10/6
-                                  ----
-subst.c
-       - skip_single_quoted: now takes an additional `flags' argument, like
-         skip_double_quoted; changed callers
-       - skip_single_quoted: now pays attention to SX_COMPLETE flag, allows
-         backslash to escape single quote, like $'...' allows
-       - skip_to_delim: added case where we are completing and we are
-         skipping over a $'...' string to call skip_single_quoted with
-         SX_COMPLETE flag to allow backslash to quote single quote.  Fixes
-         bug reported by Daniel Colascione <dancol@dancol.org>
-       - char_is_quoted: make analogous changes to handle $'...' so we can
-         accommodate $'ab \' cd'
-
-                                  10/11
-                                  -----
-subst.c,bashjmp.h
-       - no_longjmp_on_fatal_error: now global so other parts of the shell can
-         use it
-
-arrayfunc.c
-       - expand_array_index: if no_longjmp_on_fatal_error is non-zero, don't
-         longjmp to top_level, just return 0.  Fixes bug reported by
-         isabella parakiss <izaberina@gmail.com>
-
-subst.c
-       - CQ_RETURN: restore old value of no_longjmp_on_fatal_error (oldjmp);
-         make sure all callers (skip_matched_pair, skip_to_delim,
-         char_is_quoted) save no_longjmp_on_fatal_error to oldjmp before
-         setting it to 1
-
-expr.c
-       - expr_streval: if longjmping after an unbound variable error, jump
-         back to expr toplevel (evalbuf) if no_longjmp_on_fatal_error is set
-         in an interactive shell
-
-variables.c
-       - push_func_var: if pushing an array variable, such as when a variable
-         in the temporary environment is promoted to an array by mapfile when
-         the shell is in posix mode (so variable assignments preceding special
-         builtins or shell functions persist in the shell environment after
-         the builtin returns), make sure to copy the array or hash table so
-         the variable is duplicated correctly.  Fixes seg fault reported by
-         Linda Walsh <bash@tlinx.org>
-
-                                  10/13
-                                  -----
-variables.c
-       - initialize_shell_variables: add call to sv_shcompat, so BASH_COMPAT
-         can be set in the initial environment
-
-execute_cmd.c
-       - execute_function: set loop_level to 0 only if shell_compatibility_level
-         is greater than bash-4.3; this was kind of an incompatible change.
-         Report from Carlos Pita <carolosjosepita@gmail.com>
-
-COMPAT,doc/{bash.1,bashref.texi}
-       - compat43: added loop_level changes to description
-
-                                  10/15
-                                  -----
-lib/sh/casemod.c,lib/readline/display.c
-       - make sure mb_cur_max variable is defined outside of HANDLE_MULTIBYTE
-         if it's used outside HANDLE_MULTIBYTE.  Fixes from Greg Wooledge
-         <wooledg@eeg.ccf.org>
-
-support/Makefile.in
-       - bash.pc: remove as part of distclean, not clean.  Report from Andreas
-         Schwab <schwab@linux-m68k.org>
-
-                                  10/17
-                                  -----
-subst.c
-       - array_var_assignment: make sure to call quote_string or quote_escapes
-         on the assignment string, so spaces in the assignment survive word
-         splitting.  Fixes bug reported by isabella parakiss
-         <izaberina@gmail.com>
-
-                                  10/20
-                                  -----
-doc/{bash.1,bashref.texi}
-       - word splitting: make sure that newline is listed as one of the IFS
-         whitespace characters.  Fixes omission reported by ziyunfei
-         <446240525@qq.com>
-
-lib/readline/histfile.c
-       - history_do_write: make sure that we only create and use the tempfile
-         if the history file exists and is a regular file.  Reported several
-         times, most recent check the result of a report from
-         <marko.teiste@gmail.com>
-
-                                  10/22
-                                  -----
-jobs.c
-       - delete_all_jobs: if running_only == 0, we are eventually going to
-         clear the bgpids list, so don't bother to add pids to it in
-         delete_job (call with DEL_NOBGPID flag if running_only == 0)
-
-                                  10/24
-                                  -----
-jobs.[ch]
-       - bgpids: new implementation from a patch from John Fremlin
-         <john@fb.com>, uses an array for the list of the last CHILD_MAX
-         terminated background pids, and a separate hash table to search it.
-         The storage can be freed as a unit, and the size of the hash table
-         (currently 4096) is independent of the size of the bgpids table
-
-subst.c
-       - inherit_errexit: new variable to control whether or not command
-         substitution inherits the -e (errexit) option.  Disabled by default
-
-general.c
-       - posix_initialize: set inherit_errexit = 1 when Posix mode is enabled
-
-builtins/shopt.def
-       - inherit_errexit: new shell option, tracks value of inherit_errexit,
-         allows command substitution to inherit the setting of errexit without
-         posix mode.  From a request and patch submitted by Christoph Gysin
-         <christoph.gysin@gmail.com>
-
-{version,version2}.c
-       - use #if HAVE_SNPRINTF instead of #if defined in case configure
-         decides to #define it to 0.  Fixes problem reported by Klaus Ziegler
-         <klausz@haus-gisela.de>
-
-configure.ac
-       - when checking for sys/resource.h, make sure to include <sys/time.h>
-         for the benefit of both old systems that require it and new versions
-         of autoconf that require a header file to compile to report its
-         presence.  Reported by Klaus Ziegler <klausz@haus-gisela.de>
-
-                                  10/26
-                                  -----
-subst.h
-       - SD_ARITHEXP: new flag value for skip_to_delim, supports parsing
-         arithmetic expressions in parameter expansions
-
-subst.c
-       - skip_to_delim: handle SD_ARITHEXP flag by skipping parentheses for
-         subexpressions and allowing ?: expression to not terminate an
-         arithmetic expression delimited by `:'
-       - skiparith: just call skip_to_delim with the SD_ARITHEXP option and
-         the right delimiter string and return the right result.  Fixes bug
-         reported by <grishalevit@gmail.com>
-
-include/shmbchar.h
-       - strip out everything except what is needed to support is_basic and
-         similar functions, since the mbchar_t typedef apparently conflicts
-         with some AIX-specific type definition.  Problem reported by
-         Michael Felt <aixtools@gmail.com>
-
-                                  10/27
-                                  -----
-builtins/{set,ulimit}.def
-       - {set,ulimit}_builtin: make sure that --help is treated the same as
-         -? and prints a message and returns.  Fixes bug reported by ziyunfei
-         <446240525@qq.com>
-
-builtins/*.def
-       - make sure to consistently use builtin_help() instead of mix of that
-         function and builtin_usage()
-
-                                  10/29
-                                  -----
-doc/{bash.1,bashref.texi}
-       - BASH_CMDS, BASH_ALIASES: note that removing elements from these
-         array variables is not currently reflected in the command hash
-         table and alias list, respectively.  Reported by isabella parakiss
-         <izaberina@gmail.com>
-
-                                  10/30
-                                  -----
-eval.c
-       - reader_loop: if PS0 is set in an interactive shell, expand and
-         display it after reading a (complete) command but before executing
-         it.  This differs from the DEBUG trap because the DEBUG trap is
-         executed once for each simple command (and some others, like each
-         time through a for loop).  From a patch submitted by Dan Stromberg
-         <dstromberglists@gmail.com>
-
-parse.y
-       - prompt_again: set ps0_prompt from $PS0 in an interactive shell
-
-doc/{bash.1,bashref.texi}
-       - PS0: document new prompt string
-
-                                  11/3
-                                  ----
-subst.c
-       - cond_expand_node: if special > 0, remove quoted nulls from the word
-         list, since no word splitting takes place.  Fixes bug reported by
-         Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
-
-                                  11/4
-                                  ----
-doc/{bash.1,builtins.texi}
-       - inherit_errexit: add to shopt description; modify Posix mode
-         description
-
-                                  11/9
-                                  ----
-lib/readline/util.c
-       - rl_tilde_expand: fix out-of-bounds read caused when this function
-         is invoked with rl_point == 0.  Bug reported by Hanno Böck
-         <hanno@hboeck.de>
-
-                                  11/11
-                                  -----
-{nojobs,jobs}.c
-       - get_original_tty_job_signals: force the original signal disposition
-         for SIGTSTP/SIGTTIN/SIGTTOU to SIG_DFL in interactive shells.  This
-         will force child processes to get SIG_DFL even if the shell is
-         started with those signals ignored.  From a bug report from
-         Keith Thompson <keithsthompson@gmail.com>
-
-                                  11/13
-                                  -----
-make_cmd.c
-       - make_function_def: if a function is being defined without a source
-         file, and the shell has not been initialized, assume that the
-         function is being imported from the environment and set the
-         source_file struct member to "environment".  Set to "main" if the
-         shell has been initialized.  Fixes bug reported on savannah by
-         Arno-Can Uestuensoez
-         https://savannah.gnu.org/support/index.php?108903
-
-subst.c
-       - skip_to_delim: if the shell is in posix mode (posixly_correct != 0)
-         and performing history expansion ((flags & SD_HISTEXP) != 0), allow
-         double quotes to quote the history expansion character.  TENTATIVE
-         CHANGE, inspired by
-         https://savannah.gnu.org/support/index.php?108491
-
-                                  11/14
-                                  -----
-jobs.c
-       - wait_for: modify change from 4/23 to only give the terminal to
-         shell_pgrp if not running in the background and subshell_environment
-         indicates we're not in a pipeline and not an async command.  Fixes
-         bug reported by konsolebox <konsolebox@gmail.com>
-
-                                  11/16
-                                  -----
-doc/{bash.1,bashref.texi}
-       - document new posix-mode behavior of not giving ! special meaning
-         within double quotes, even if histexpand is enabled
-
-                                  11/17
-                                  -----
-builtins/evalfile.c
-       - fc_execute_file: pass FEVAL_BUILTIN flag to _evalfile so it returns
-         the value of parse_and_execute after executing the commands in the
-         file.  Fixes bug reported by Chris Marusich <cmmarusich@gmail.com>
-
-                                  11/20
-                                  -----
-subst.c
-       - process_substitute: don't unconditionally set pipeline_pgrp to
-         shell_pgrp; do that only if pipeline_pgrp == 0 (we haven't forked
-         yet) or if we know we haven't forked for a command, a pipeline,
-         or an async command.  Fixes bug reported by
-         <gnu.20.drkshadow@spamgourmet.com>
-         as https://savannah.gnu.org/support/index.php?108593
-
-                                  11/24
-                                  -----
-variables.c
-       - set_pwd: inherit the value of OLDPWD from the initial environment
-         if it names a directory.  From a report from John Wiersba
-         <jrw32982@yahoo.com>
-
-builtins/set.def
-       - -T: fix help text to note that the DEBUG and RETURN traps are both
-         inherited if this is set.  Report from Grisha Levin
-         <grishalevit@gmail.com>
-
-doc/{bash.1,bashref.texi}
-       - HISTIGNORE,GLOBIGNORE: note that the pattern matching is subject to
-         the setting of the `extglob' variable.  Clarification raised by
-         Aharon Robbins <arnold@skeeve.com>
-
-builtins/jobs.def,doc/{bash.1,bashref.texi}
-       - disown: add text to synopsis making it clear that disown takes a
-         pid argument.  From a report from Matthew Stanfield
-         <matthew@i-dig.info>
-
-findcmd.c,doc/{bash.1,bashref.texi}
-       - EXECIGNORE: change pattern matching to use FNMATCH_EXTFLAG like other
-         IGNORE variables.  From a report from Aharon Robbins <arnold@skeeve.com>
-
-trap.c
-       - _run_trap_internal: make sure to catch and use return values supplied
-         as arguments to `return'; instead of just catching return, make sure
-         we use return_catch_value as well.  Fixes bug reported by
-         Grisha Levit <grishalevit@gmail.com>, affects RETURN, DEBUG, ERROR
-         traps
-
-                                  11/30
-                                  -----
-lib/readline/display.c
-       - rl_redisplay: fix code that deals with prompts that contain
-         multibyte characters whose physical length is longer than the screen
-         width (so the prompt line wraps) to deal with invisible characters
-         in the prompt and set the inv_lbreaks offsets correctly and set
-         lpos appropriately
-       - _rl_move_cursor_relative: always called with either visible line or
-         invisible line. Decide whether we are being called with the invisible
-         line (or a portion thereof) as the DATA argument; make sure to account
-         for invisible characters in the last line of the prompt by offsetting
-         the desired buffer offset (NEW) by where DATA starts in invisible line
-         and checking whether that is past the last invisible character in
-         the prompt
-       - _rl_move_cursor_relative: do the same for the visible line by using
-         the visible line lbreaks array instead of _rl_screenwidth, since
-         that fails in the presence of multibyte characters (buffer offset
-         vs. physical screen position).  These fix bug with prompts with
-         multibyte characters and invisible characters that are longer than
-         the screen width reported by Ryo Furue <ryofurue@gmail.com>
-
-                                  12/1
-                                  ----
-parse.y,make_cmd.c
-       - here_doc_first_line: new variable, set to non-zero to indicate the
-         first line of possibly multiple here documents associated with the
-         current command.  Set in parse.y:gather_here_documents() before
-         reading any here documents, set to 0 after reading the first line
-         of any here document in make_cmd.c:make_here_document().
-
-parse.y
-       - history_delimiting_chars: if parser_state indicates we are reading
-         a here document, don't use current_command_line_count to see whether
-         or not we're on the first line of a here document -- it can be fooled
-         by multi-line commands (or even backslash-escaped newlines).  Use
-         here_doc_first_line to check that directly.  Fixes bug reported by
-         Geoffrey Allott <geoffrey@allott.email>
-
-shell.h,parse.y
-       - save and restore here_doc_first_line as part of the shell's parser
-         state
-
-lib/sh/tmpfile.c
-       - use ANSI-C rand() interface if random() not available.  Fixes problem
-         with linking on (ancient) Solaris 2.4 reported by Klaus Ziegler
-         <klausz@haus-gisela.de>
-
-                                  12/2
-                                  ----
-aclocal.m4
-       - RL_LIB_READLINE_VERSION: if cross-compiling, assume current version
-         of readline if cross-compiling bash while using an external readline
-         library.  Fix from Barry Davis <barry_davis@stormagic.com>
-
-execute_cmd.c
-       - execute_builtin: save and restore value of builtin_ignoring_errexit
-         instead of assuming we can set it back to 0 -- the ignore-errexit
-         cases might be nested
-       - execute_builtin: after a builtin executes and eval_unwind is set,
-         set exit_immediately_on_error to 0 if builtin_ignoring_errexit is
-         set, and back to the value of errexit otherwise, just like the
-         code that sets -e does.  Fixes short-circuiting bug reported by
-         Marcin Swigon <swigon.mar@gmail.com>
-
-                                  12/5
-                                  ----
-builtins/setattr.def
-       - set_or_show_attributes: instead of using a fixed string for the
-         options argument to `declare', which results in export adding the
-         readonly attribute, build the option string dynamically like in
-         subst.c:shell_expand_word_list()
-       - set_or_show_attributes: don't add the -r option to declare if the
-         attribute passed as an argument doesn't include att_readonly; add
-         -x if the attribute includes att_exported
-       - set_or_show_attributes: add the -g option to declare so readonly
-         and export in functions that go through this code path don't create
-         local variables.  Part of fix for bug reported by ziyunfei
-         <446240525@qq.com>
-
-execute_cmd.c
-       - make_internal_declare: if we have an assignment builtin that isn't
-         supposed to create local variables (export/readonly), make sure to
-         add the W_ASSNGLOBAL flag to each assignment statement word.
-         Part of fix for bug reported by ziyunfei <446240525@qq.com> where
-         readonly can create local variables when invoked with a compound
-         array assignment as an argument within a shell function
-
-subst.c
-       - make_internal_declare: added third argument: command name.  Not used
-         in any useful way yet
-       - do_compound_assignment: handle attempted assignments to readonly
-         variables and print error messages, like bind_variable does and the
-         callers expect. This means that assignments to readonly array
-         variables can't go through a code path that allows them to fail
-         silently
-
-doc/Makefile.in
-       - uninstall: run install-info --delete after removing the installed
-         info file to update the directory file
-
-execute_cmd.c
-       - execute_disk_command: since we still (and have always) perform
-         redirections in child processes, we need to mark that state so
-         we know that we're in a child process.  subshell_performing_redirections
-         is the new variable; non-zero when executing do_redirections()
-
-subst.c
-       - process_substitute: if we are executing process substitution in a
-         redirection expansion context (expanding_redir == 1), the child
-         process should not have access to any temporary environment the
-         parent has.  Call flush_tempenv() in the child process to get rid
-         of it.  Fix for bug reported by Clint Hepner <clint.hepner@gmail.com>
-
-                                  12/9
-                                  ----
-jobs.c
-       - waitchld: if in posix mode and attempting to let SIGCHLD interrupt the
-         wait builtin, make sure wait_intr_flag is non-zero before trying to
-         longjmp to wait_intr_buf.  Fixes bug reported by Aharon Robbins
-         <arnold@skeeve.com>
-
-                                  12/10
-                                  -----
-lib/readline/display.c
-       - update_line: if a prompt containing invisible characters changes,
-         and the change is within the prompt string, we need to redraw the
-         entire prompt.  After that redraw, if the cursor position is after
-         the first index where the old and new lines differ, we can short-
-         circuit the update if the line length stays the same
-       - update_line: if we redraw the entire prompt string because the prompt
-         contains invisible characters and the first difference is in the
-         middle of the prompt, we possibly need to adjust our idea of the
-         first differing character in the old and new lines.  We punt and do
-         a dumb update in this case.  Fixes bug with dynamic vi-mode mode
-         strings containing invisible characters reported by Dylan Cali
-         <calid1984@gmail.com>
-
-                                  12/11
-                                  -----
-lib/readline/display.c
-       - update_line: if we move up to a new screen line, we need to recompute
-         the number of invisible characters on the new current line
-         (visible_wrap_offset).  Fixes bug reported to bug-readline by
-         Per Bothner <per@bothner.com>
-       - update_line: update code that attempts to compute where we are in
-         the new line buffer.  Fixes `vt100' bug reported to bug-readline by
-         Per Bothner <per@bothner.com>
-
-                                  12/18
-                                  -----
-execute_cmd.c
-       - execute_function: unwind-protect and restore BASH_ARGC and BASH_ARGV
-       - restore_funcarray_state: now global
-
-execute_cmd.h
-       - make func_array_state type global, add extern function declaration
-         for restore_funcarray_state
-
-builtins/evalfile.c
-       - _evalfile: use restore_funcarray_state and pop_args as unwind-protects
-         to restore BASH_{SOURCE,LINENO,ARGC,ARGV} and FUNCNAME on interrupts.
-         Fixes bug reported back on 11/10 by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                  12/20
-                                  -----
-lib/readline/isearch.c
-       - _rl_isearch_dispatch: after removing the only character from the
-         search string with DEL, leaving the search string empty, don't match
-         the previous line if we didn't have a match before
-
-                                  12/22
-                                  -----
-bashhist.c
-       - enable_history_list,remember_on_history: initialize to 0 instead of 1
-
-shell.c
-       - init_interactive,init_interactive_script: set enable_history_list and
-         remember_on_history to 1 (defaults)
-
-                                  12/23
-                                  -----
-variables.c
-       - initialize_shell_variables: don't inherit PS4 from the environment
-         if the shell is running with euid == 0; just reset it to `+ '.  This
-         is a known potential vulnerability, since PS4 expansion performs
-         command substitution in the root shell's context before displaying
-         it.  Discussion started by up201407890@alunos.dcc.fc.up.pt
-
-bashhist.c
-       - bash_history_reinit: initialize remember_on_history to the value of
-         enable_history_list (set -o history).  Fixes bug reported by
-         Stephane Chazelas <stephane.chazelas@gmail.com> with command-line
-         option `-o history' not having any effect
-
-                                  12/28
-                                  -----
-lib/readline/{history.h,histfile.c}
-       - history_file_version: new int variable, reserved for future use
-       - history_multiline_entries: new int variable, can be set by the
-         calling application to enable reading multi-line history entries
-         from the history file (currently undocumented)
-
-lib/readline/history.c
-       - _hs_append_history_line: new function, append a line passed as an
-         argument to a specified history entry, used to create multi-line
-         history entries
-
-lib/readline/histfile.c
-       - read_history_range: implement a heuristic that temporarily sets the
-         history comment character if the first line read from the history
-         file looks like it has is a timestamp (#[:digit:]) so we can read
-         timestamps from the history file properly.  Originally reported
-         back in March 2015 by Christoph Anton Mitterer <calestyo@gmail.com>
-       - read_history_range: make sure history_multiline_entries is non-zero
-         if the history file looks like it has timestamps
-       - read_history_range: if we think we have a history file with timestamps
-         and we read more than one non-timestamp consecutive history lines,
-         assume they are part of a single multi-line history entry and paste
-         them together using _hs_append_history_line.  Feature most recently
-         requested by james harvey <jamespharvey20@gmail.com>, also suggested
-         by Christoph Anton Mitterer <calestyo@gmail.com>
-
-examples/loadables/setpgid.c
-       - setpgid: new loadable builtin, originally contributed by Jason
-         Vas Dias <jason.vas.dias@gmail.com>
-
-                                  12/29
-                                  -----
-bashhist.c
-       - bash_history_inhibit_expansion: fix cases where a history expansion
-         should be skipped because it's in a command or process substitution
-         but there is another history expansion preceding the substitution
-         on the command line.  Don't let the previous history expansion fool
-         the function into saying the command substitution history expansion
-         should be performed
-
-builtins/evalstring.c
-       - parse_prologue: always unwind-protect history_expansion_inhibited,
-         since history expansion can be enabled in non-interactive shells,
-         and calling eval once in a non-interactive shell inhibits history
-         expansion forever even if `set -o histexpand' was run before the
-         eval
-
-builtins/common.h
-       - SEVAL_NOHISTEXP: new flag for parse_and_execute/parse_string; means
-         to not perform history expansion (decouple from SEVAL_NOHIST, which
-         now means to not remember commands on history); changed all callers
-         that had SEVAL_NOHIST to have SEVAL_NOHIST|SEVAL_NOHISTEXP
-
-builtins/evalstring.c
-       - parse_prologue: instead of calling bash_history_disable, set
-         remember_on_history to 0 if SEVAL_NOHIST and history_expansion_inhibited
-         to 1 if SEVAL_NOHISTEXP
-
-                                  12/30
-                                  -----
-subst.c
-       - skip_to_histexp: new function, a stripped-down version of skip_to_delim.
-         Used to skip to the next unquoted instance of the history expansion
-         character, handles peculiar quoting and command/process substitution
-         requirements.  Better fix for bug reported by
-         Zigmund.Ozean@zig-home.localdomain back in January, prompted by report
-         from Keith Thompson <keithsthompson@gmail.com>
-
-bashhist.c
-       - bash_history_inhibit_expansion: use skip_to_histexp instead of
-         skip_to_delim
-
-subst.c
-       - parameter_brace_expand_rhs: if the rhs of an expansion is "$@" and
-         IFS is null, we need to separate the (quoted) positional parameters
-         in the returned word with a space, and mark the word as needing to
-         be split on spaces (W_SPLITSPACE).  Fix for issues reported back in
-         October 2014 as the result of an austin-group discussion, and just
-         re-reported by Martijn Dekker <martijn@inlv.org>
-
-                                1/4/2016
-                                --------
-execute_cmd.c
-       - execute_simple_command: if autocd is set, invoke a function named
-         `cd' if one exists, instead of the shell builtin.  Feature requested
-         by transl8czech@gmail.com
-
-builtins/mkbuiltins.c
-       - if a command's short description is the same as its name (e.g., `true'),
-         don't mark the short doc to be translated.  Report and fix from
-         Benno Schulenberg <bensberg@justemail.net>
-
-                                   1/6
-                                   ---
-subst.c
-       - command_substitute,process_substitute: before replacing the file
-         descriptor underlying stdout (fd 1), make sure to purge any pending
-         stdio output that hasn't been written successfully, even after a
-         call to fflush().  Fixes bug reported by cks@cs.toronto.edu
-
-                                   1/7
-                                   ---
-builtins/{echo,printf}.def
-       - echo_builtin,printf_builtin: don't use terminate_immediately; use
-         calls to QUIT in the body of the print loop after writes and flushes.
-         Fixes problem with running the signal handler and exit trap in a
-         signal context and other bug reported by cks@cs.toronto.edu
-
-builtins/common.c
-       - sh_chkwrite: put in calls to QUIT to catch signals that interrupt
-         writes
-
-shell.c
-       - get_current_user_info: protect endpwent() with #ifdef HAVE_GETPWENT.
-         Fixes bug reported by pb <p-bauer-schriesheim@t-online.de>
-
-                                   1/8
-                                   ---
-lib/readline/bind.c
-       - _rl_init_file_error: now a varargs function so it can take format
-         strings and arguments and pass them to vfprintf
-       - rl_parse_and_bind: print a warning if we encounter a key binding
-         string with one or more hyphens but we don't find a valid modifier
-         (`control', `meta', etc.).  Prompted by a report from Andrew Kurn
-         <kurn@sfu.ca>
-       - rl_parse_and_bind: improve several existing error messages now that
-         _rl_init_file_error takes a variable number of arguments
-       - rl_variable_bind: print error message upon encountering unknown
-         variable
-
-                                  1/10
-                                  ----
-lib/readline/bind.c
-       - rl_parse_and_bind: if a `bare' keybinding is supplied without any
-         terminating `:' or whitespace separating it from the command to be
-         bound, signal an error
-
-                                  1/11
-                                  ----
-subst.c
-       - process_substitute: when compiled without job control (JOB_CONTROL not
-         defined), make sure we call stop_making_children like we do in the job
-         control code branch, so already_making_children is reset to 0.  This
-         is what command substitution does.  Fixes bug reported by Alastair
-         Hughes <hobbitalastair@yandex.com>
-
-                                  1/12
-                                  ----
-execute_cmd.c
-       - execute_in_subshell: if a user subshell (`(command)') or other shell
-         compound command has an input pipe, note for later by setting
-         stdin_redir.  This will inhibit the implicit redirection of standard
-         input from /dev/null for async commands executed as part of this
-         subshell.  Fixes bug reported by Martin D Kealey <martin@kurahaupo.gen.nz>
-       - execute_simple_command: if the shell forks to execute this command
-         because it has an input pipe, set stdin_redir to inhibit later redirection
-         from /dev/null for async commands
-
-                                  1/13
-                                  ----
-execute_cmd.c
-       - HASH_BANG_BUFSIZE: use #define for size of buffer used in
-         READ_SAMPLE_BUF instead of straight constant 80
-       - HASH_BANG_BUFSIZ: increase to 128 because Linux allows 128 chars in
-         exec header.  Reported by Ludovic Courtès <ludo@gnu.org>
-
-configure.ac
-       - remove support for purify and purecoverage
-       - change release level to `rc1'
-
-                                  1/15
-                                  ----
-builtins/enable.def
-       - dyn_load_builtin: fix missing argument to builtin_error if load function
-         returns an error.  Fix from Aharon Robbins <arnold@skeeve.com>
-
-                                  1/18
-                                  ----
-builtins/history.def
-       - histtime: display a better error message for invalid timestamps; use
-         existing `??' string for empty/missing timestamps or invalid history
-         entries.  Suggestion from Reuben Thomas <rrt@sc3d.org>
-
-                                  1/21
-                                  ----
-lib/readline/text.c
-       - rl_insert: when trying to optimize typeahead, make sure to reset the
-         key sequence and key sequence length when we read a character that is
-         not bound to self-insert.  Bug report from Geir Hauge
-         <geir.hauge@gmail.com>
-
-                                  1/25
-                                  ----
-doc/{bash.1,bashref.texi}
-       - word splitting: add example showing how -d'' is equivalent to -d
-         after word splitting and null argument removal
-
-                                  1/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - read: modify description to make it more clear that the line is split
-         using the same rules as word splitting, and use `delimiters' instead
-         of `separators', which people read the wrong way
-
-                                   2/2
-                                   ---
-variables.c
-       - initialize_shell_variables: allow FUNCNEST to set funcnest_max when
-         imported from the environment.  Inspired by
-         https://bugzilla.redhat.com/show_bug.cgi?id=1274553
-
-                                  2/11
-                                  ----
-bashhist.c
-       - bash_history_inhibit_expansion: function should be compiled in only if
-         BANG_HISTORY is defined.  Report from isabella parakiss
-         <izaberina@gmail.com>
-
-[bash-4.4-rc1 frozen]
-
-                                  2/15
-                                  ----
-lib/readline/text.c
-       - rl_refresh_line: call rl_redraw_prompt_last_line instead of
-         rl_forced_update_display to avoid redrawing all lines of a multiline
-         prompt (overwriting the last line of the multiline prompt in the
-         process).  Report from Hugh Davenport <hugh@davenport.net.nz>
-
-                                  2/18
-                                  ----
-subst.c
-       - parameter_brace_expand: when processing ${!name[@]}, make sure to
-         free `name' before returning the list of keys to avoid a memory leak.
-         Fixes bug reported by Emilio PastorMira <Emilio.PastorMira@utimaco.com>
-
-                                  2/19
-                                  ----
-trap.c
-       - free_trap_strings: when freeing the `special' traps (NSIG to BASH_NSIG),
-         check whether or not the `signal' is trapped, as it would be if the
-         subshell inherited it (errtrace) and don't free the trap string in that
-         case.  Fixes bug reported by Jan Klötzke <jan@kloetzke.net>
-
-                                  2/21
-                                  ----
-lib/sh/netconn.c
-       - isnetconn: return false if getpeername fails with errno == EBADF.
-         Bug and fix from Andrew Gregory <andrew.gregory.8@gmail.com>
-
-builtins/shopt.def
-       - parse_bashopts: when reading BASHOPTS from the environment, make
-         sure to call any set functions associated with a variable, instead
-         of just setting the value to 1.  Report and fix from
-         Vehlow, Jörg <Joerg.Vehlow@kratzer-automation.com>
-
-                                  2/22
-                                  ----
-lib/readline/complete.c
-       - rl_display_match_list: don't bother calling strrchr to check the
-         return value from printable_part() if rl_filename_completion_desired
-         is non-zero, since in that case printable_part just returns its
-         argument.  Fixes git completion issue reported by
-         Dilyan Palauzov <dilyan.palauzov@aegee.org>
-       - _rl_colored_completion_prefix: default is now 0, testing is complete
-
-                                  2/23
-                                  ----
-variables.c
-       - assign_hashcmd: if the shell is restricted, reject attempts to add
-         pathnames containing slashes to the hash table, as the hash builtin
-         does.  Fixes bug reported to savannah by Sylvain Beucler as
-         https://savannah.gnu.org/support/?108969
-
-                                  2/24
-                                  ----
-subst.c
-       - NEED_FPURGE_DECL: need it before externs.h included, since fpurge
-         is now used in this file.  Fixes warning reported by Mike
-         Frysinger <vapier@gentoo.org>
-       - skip_double_quoted: add missing argument to declaration
-
-parse.y
-       - shell_getc: in call to internal_warning, use %lu to print an argument
-         cast explicitly to unsigned long.  Fixes warning reported by Mike
-         Frysinger <vapier@gentoo.org>
-
-                                  2/27
-                                  ----
-parse.y
-       - decode_prompt_string: quote result of \s expansion in case shell has
-         been invoked with a pathname like '$(id)'.  Inspired by report from
-         Travis Garrell <travis.garrell@oracle.com>
-       - decode_prompt_string: quote result of \h and \H expansions in the
-         (unlikely) case that the hostname has been changed to something
-         malicious including a command substitution.  From report from
-         Travis Garrell <travis.garrell@oracle.com>
-
-builtins/getopts.def
-       - getopts_unbind_variable: new static function, just calls unbind_variable
-         for now.  Placeholder for any future work to do something special if
-         OPTARG is readonly.  Based on discussion started by Robert Elz
-         <kre@munnari.oz.au>
-
-lib/readline/vi_mode.c
-       - rl_vi_unix_word_rubout: new function, implements ^W as Posix specifies
-         it for vi mode, using whitespace and punctuation characters as word
-         boundaries. Prompted by question from Carlos Pita
-         <carolosjosepita@gmail.com>
-
-lib/readline/vi_keymap.c
-       - bind rl_vi_unix_word_rubout to ^W by default in both insert and
-         command mode
-
-lib/readline/rltty.c
-       - _rl_bind_tty_special_chars: if in vi mode, bind the WERASE character
-         to rl_vi_unix_word_rubout
-
-lib/readline/funmap.c
-       - vi-unix-word-rubout is new bindable name for rl_vi_unix_word_rubout
-
-lib/readline/readline.h
-       - rl_vi_unix_word_rubout: new extern declaration
-
-                                  2/28
-                                  ----
-doc/bash.1
-       - document readline blink-matching-paren variable
-       - document readline completion-display-width variable
-       - document readline completion-map-case variable
-       - note that the default value of history-size depends on the value of
-         the HISTSIZE variable.  All from a message from Branden Robinson
-         <g.branden.robinson@gmail.com>
-
-doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
-       - convert-meta: modify the description to note that readline will turn
-         the default to off if the locale contains eight-bit characters
-       - input-meta: modify the description to note that readline will turn
-         the default to on if the locale contains eight-bit characters
-       - output-meta: modify the description to note that readline will turn
-         the default to on if the locale contains eight-bit characters.  From
-         a message from Branden Robinson <g.branden.robinson@gmail.com>
-
-                                   3/6
-                                   ---
-examples/loadables/Makefile.in
-       - install-dev: make installdirs a prerequisite; don't rely on the
-         install-supported target to create it first.  Bug with parallel
-         install (`make -j 4 install') reported by Chris Staub
-         <cstaub67@gmail.com>
-
-                                  3/12
-                                  ----
-lib/readline/display.c:
-       - rl_clear_visible_line: clear all screen lines occupied by the current
-         visible readline line.  Inspired by report from Lauri Ranta
-         <lauri.ranta@gmail.com>
-
-lib/readline/readline.h
-       - rl_clear_visible_line: extern declaration
-
-lib/readline/doc/rltech.texi
-       - rl_clear_visible_line: add documentation
-
-                                  3/19
-                                  ----
-findcmd.c
-       - file_status: add inadvertently-dropped test for EXECIGNORE to the
-         `other' bits check.  The check was in the original patch
-       - search_for_command: if the file should not be considered executable
-         because it's in the EXECIGNORE blacklist, don't set file_to_lose_on,
-         since the attempt to execute the last-ditch path will circumvent the
-         EXECIGNORE setting.  Fixes bug reported by Dennis Williamson
-         <dennistwilliamson@gmail.com>
-
-                                  3/28
-                                  ----
-lib/readline/display.c
-       - rl_redisplay: when computing where the cursor should go (and the
-         physical cursor position) after displaying the prompt, don't adjust
-         the cursor position by wadjust if there are no multibyte chars in
-         the prompt.  lpos is already a physical cursor position; _rl_screenwidth
-         is the physical screen width, and we're not calling _rl_col_width and
-         don't need to take invisible characters into account again.  Fixes
-         bug reported by Andreas Schwab <schwab@linux-m68k.org>
-
-                                   4/1
-                                   ---
-parse.y
-       - parse_comsub: when we read `esac' followed by a break character,
-         turn on the LEX_RESWDOK flag because we can now read another case
-         statement or other compound command.  Fixes bug reported by
-         Christian Franke <Christian.Franke@t-online.de>, original version
-         of patch from Piotr Grzybowski <narsil.pl@gmail.com>
-       - parse_comsub: leave the reserved-word-ok flag set for four-char
-         reserved words (then/else/elif/done/time) that can be followed by
-         reserved words; set lex_rwlen to 0 so we know to start reading a
-         new one
-
-                                   4/7
-                                   ---
-builtins/{alias,complete,jobs}.def
-       - {alias,compopt,disown}: add missing `CASE_HELPOPT;' so --help option
-         prints help longdoc instead of builtin_usage()
-
-                                   4/8
-                                   ---
-arrayfunc.c
-       - assign_array_var_from_word_list: use bind_array_var_internal instead
-         of inline code, so value conversions happen on assignment (case
-         modification, arithmetic evaluation, etc).  Fixes bug reported by
-         Geir Hauge <geir.hauge@gmail.com>
-
-                                   4/9
-                                   ---
-shell.c
-       - main: change the logic that determines whether or not bash is running
-         under an emacs terminal emulator so it works with future versions of
-         emacs, which will change to use only $INSIDE_EMACS.  Report and fix
-         from Paul Eggert <eggert@cs.ucla.edu>
-
-lib/glob/sm_loop.c
-       - EXT: if we see ?(pat), we can match 0 or 1 times, so if we don't
-         match, we should consume the extglob pattern and go on to attempt
-         to match the rest of the pattern against the string.  Fixes bug
-         reported by Isabella Parakiss <izaberina@gmail.com>
-       - GMATCH: in case `*', don't short-circuit and match anything if the
-         * is the last character in the pattern until after we check the
-         special cases for matching a `.'.  Fixes bugs reported back on 3/23
-         by Isabella Parakiss <izaberina@gmail.com>
-
-                                  4/13
-                                  ----
-bashhist.c
-       - hc_erasedups: fix memory leak by freeing history entry returned by
-         remove_history.  Bug and fix from Seiichi Ishitsuka
-         <ishitsuka.sc@ncos.nec.co.jp>
-
-                                  4/19
-                                  ----
-config-top.h
-       - CD_COMPLAINS: now settable in config-top.h; enables (fatal) error
-         messages if cd is given multiple directory arguments
-
-                                  4/20
-                                  ----
-execute_cmd.c
-       - coproc_setvars: refuse to create variables with names that are not
-         valid identifiers.  Suggestion from Piotr Grzybowski
-         <narsil.pl@gmail.com>
-
-rltty.c
-       - rl_tty_set_echoing: interface to set _rl_echoing_p, returning old
-         value.  Inspired by gdb use of _rl_echoing_p when switching
-         between terminal and curses modes described by Doug Evans
-         <dje@google.com>
-
-bashline.c
-       - bash_execute_unix_command: use rl_clear_visible_line instead of
-         erasing current line on the screen, inspired by same report from
-         3/12.  Still tentative change
-
-configure.ac
-       - update release status to rc2, may skip this and go directly to
-         release
-
-                                  4/21
-                                  ----
-arrayfunc.c
-       - convert_var_to_array: make sure that the newly-converted array
-         variable is not marked as being an associative array.  Fixes bug
-         reported by Grisha Levit <grishalevit@gmail.com>
-       - convert_var_to_assoc: make sure that the newly-converted associative
-         array variable is not marked as being an indexed array
-
-                                  4/22
-                                  ----
-builtins/evalstring.c
-       - should_suppress_fork: don't suppress the fork if there are any traps
-         set, since that requires that we hang around to react to a signal or
-         collect the command's exit status and run something.  Fixes bug
-         reported by Brian Vandenberg <phantall@gmail.com>
-
-histexpand.c
-       - history_tokenize_word: handle >| as a single token.  Fix from
-         Piotr Grzybowski <narsil.pl@gmail.com> from a report from
-         idallen@idallen-fibe.dyndns.org
-
-                                  4/24
-                                  ----
-execute_cmd.
-       - coproc_setvars: don't overwrite readonly variables used as coproc
-         names.  From a report from Grisha Levit <grishalevit@gmail.com>
-
-histexpand.c
-       - history_tokenize_word: handle strings of digits before redirections
-         beginning with `<' or `>' as part of the redirection word; handle
-         strings of digits following `<&' or `>&' as part of the redirection
-         word.  Inspired by patch from  Piotr Grzybowski <narsil.pl@gmail.com>
-         from a report from idallen@idallen-fibe.dyndns.org
-
-lib/readline/complete.c
-       - rl_display_match_list: if the common prefix is longer than any of
-         the possible matches, set the length of the common prefix to 0 so
-         the entire match gets printed for each match
-       - rl_display_match_list: make sure to output at least one space
-         between each displayed match, even if the displayed length is
-         longer than our computed max
-       - fnprint: if the length of the prefix (prefix_bytes) is greater than
-         or equal to the length of the string to be printed (print_len), make
-         sure to set the prefix length to 0 so the entire string is printed.
-         From a report from Grisha Levit <grishalevit@gmail.com>
-
-                                  4/25
-                                  ----
-subst.c
-       - command_substitute: update the conditions under which we give the
-         terminal to pipeline_pgrp with give_terminal_to to the same ones
-         where wait_for uses to decide whether to give the terminal back to
-         shell_pgrp.  This code exists to undo the work wait_for does; it
-         has to give the terminal back to pipeline_pgrp only under those
-         conditions when wait_for gives it back to the shell pgrp.  Fix for
-         bug reported by Paulo Bardes <bardes0022@gmail.com>
-
-                                  4/26
-                                  ----
-bashline.c
-       - bash_filename_stat_hook: temporarily disable the `nounset' shell
-         option around calls to expand_prompt_string so we don't get error
-         messages during completion.  Fixes issue reported by Eric Pruitt
-         <eric.pruitt@gmail.com>
-
-                                  4/27
-                                  ----
-doc/{bash.1,bashref.texi}
-       - extdebug: clarify that having this option enabled at shell startup
-         acts identically to --debugger.  From a report from Grisha Levit
-         <grishalevit@gmail.com>
-
-jobs.[ch]
-       - wait_for_single_pid: now takes additional `int flags' argument
-
-{jobs,execute_cmd}.c,builtins/wait.def
-       - wait_for_single_pid: changed callers to add extra argument
-
-jobs.c
-       - wait_for_single_pid: if (flags & 1) == 0, don't print the error
-         message if PID isn't found; changed execute_pipeline call when
-         lastpipe is set
-
-                                  4/28
-                                  ----
-general.c
-       - bash_tilde_expand: try not setting interrupt_immediately or
-         terminate_immediately; see what happens with networked password
-         databases
-
-                                  4/29
-                                  ----
-subst.c
-       - parameter_brace_expand, parameter_brace_expand_rhs: now take an
-         additional `pflags' argument from its caller so we can pass
-         state
-       - parameter_brace_expand_rhs: if expand_string_for_rhs returns a
-         quoted null, but l_hasdollat is set to 1, meaning we saw a quoted
-         "$@" of some form, we need to turn off special handling of "$@"
-         so something like "${@-${@-$@}}" expands to an empty string like
-         Posix says it should.  Fixes bug reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   5/1
-                                   ---
-variables.c
-       - bind_variable_internal: if we have a nameref variable with a valid
-         array reference that is invalid for assignment (e.g., a[*]), and
-         assign_array_element returns NULL, short-circuit and return NULL.
-         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
-
-general.[ch]
-       - valid_nameref_value: new function, return 1 if passed argument is
-         a valid variable name argument for a nameref variable: a valid
-         identifier, a valid array reference, or a valid positional
-         parameter.  Second argument indicates whether the value is to be
-         used for an assignment; in this case, return an error if the name
-         consists of all digits
-
-builtins/declare.def
-       - declare_internal: disallow values for nameref variables that don't
-         pass the tests in valid_nameref_value.  Part of fix for bug
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.c
-       - bind_variable_internal: if trying to assign a value to a nameref
-         variable, throw an error if valid_nameref_value fails (with a second
-         argument of 1).  More fixes for bug reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   5/2
-                                   ---
-builtins/declare.def
-       - declare_internal: don't allow nameref attribute to be applied to an
-         existing readonly variable; it can be used to circumvent readonly
-         value.  Fix for bug reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.[ch]
-       - find_variable_last_nameref, find_global_variable_last_nameref: takes
-         a new flags argument.  If flags is non-zero, and we find a nameref
-         variable that is unset (has no value), return that variable instead
-         of NULL.
-
-{variables,execute_cmd,arrayfunc,subst}.c,builtins/{declare,set}.def
-       - find_variable_last_nameref, find_global_variable_last_nameref: change
-         callers to add flags argument (initially 0)
-
-                                   5/3
-                                   ---
-variables.c
-       - bind_variable_internal: make sure we run the value of a namref
-         variable through valid_nameref_value before doing the assignment.
-         This can go away if we stop allowing namerefs to refer to positional
-         parameters
-
-execute_cmd.c
-       - execute_select_command: if bind_variable returns NULL, handle it as
-         an error, as if attempting assignment to a readonly variable
-       - execute_for_command: use 1 as second argument to
-         find_variable_last_nameref, so it will return an invisible nameref
-         to assign for each variable in the list
-       - execute_for_command: if the current word in the list is an invalid
-         identifier and the loop variable is a nameref, handle it as an error,
-         as if attempting assignment to a readonly variable
-
-                                   5/4
-                                   ---
-variables.c
-       - bind_int_variable: add warning if assigning an int to a nameref
-         variable
-       - assign_in_env: if assigning a variable in the temporary environment
-         that is a namref, throw an error if trying to assign an invalid
-         value
-       - bind_variable_value: use valid_nameref_value instead of calls to
-         legal_identifier and valid_array_reference
-
-execute_cmd.c
-       - coproc_setvars: if we have a nameref variable as the coproc name, but
-         it can't be assigned to for some reason, remove the nameref attribute
-         and  issue a warning that we are doing so
-       - coproc_setvars: don't allow assignment to a nameref variable with an
-         invalid variable name, using same code as find_or_make_array_variable
-
-general.c
-       - valid_nameref_value: disallow values consisting solely of digits,
-         like the positional parameters
-
-builtins/declare.def
-       - declare_internal: don't call valid_nameref_value on the existing value
-         of a variable that's being converted to a nameref -- that value is
-         going to be thrown away and we've already checked the new value
-       - declare_internal: call bind_variable_value with the ASS_NAMEREF flag
-         if we're assigning to an existing nameref variable (for instance,
-         `declare -n x ; declare x=42')
-
-                                   5/5
-                                   ---
-variables.c
-       - make_local_variable: if we are being asked to create a local copy of
-         a nameref variable from a prior scope (checked by looking up
-         using find_variable_noref), use the nameref variable, not the variable
-         it references (which we find using find_variable).  Bug report from
-         Grisha Levit <grishalevit@gmail.com> ; fix by Piotr Grzybowski
-         <narsil.pl@gmail.com>
-
-builtins/declare.def
-       - declare_internal: if asked to do the same thing as above (difference
-         is declare -n r=foo in previous case; declare -n r in this one),
-         don't follow reference var from a previous context.  Create a new
-         local variable (using make_local_variable) and inherit attributes
-         from previous scope's nameref as above
-
-                                   5/6
-                                   ---
-builtins/declare.def
-       - declare_internal: if we are assigning a value to an existing
-         invisible nameref variable, validate value early so we don't end up
-         removing the variable after the assignment fails
-
-builtins/shopt.def
-       - toggle_shopts: don't call set_bashopts here unless $BASHOPTS exists,
-         since we don't want to set it up before it gets read from the
-         environment. Keeping BASHOPTS read-only should keep users from
-         unsetting it.  Fix from Grisha Levit <grishalevit@gmail.com>
-       - shopt_set_debug_mode: make sure error_trace_mode reflects the setting
-         of extdebug.  This one is tentative.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-       - shopt_set_debug_mode: call set_shellopts after setting error_trace_mode
-         or function_trace_mode.  Fix from Grisha Levit <grishalevit@gmail.com>
-
-shell.c
-       - start_debugger: make sure that function_trace_mode and error_trace_mode
-         reflect the value of debugging_mode, so they are both disabled if we
-         disable debugging mode because we can't find the debugger start file.
-         Fix from Grisha Levit <grishalevit@gmail.com>
-       - start_debugger: set $SHELLOPTS and $BASHOPTS to the option values are
-         reflected if we change or set them here.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-
-builtins/set.def
-       - reset_shell_options: add reset values for: posix, nolog, pipefail.
-         Fix from Grisha Levit <grishalevit@gmail.com>
-
-builtins/shopt.def
-       - reset_shopt_options: add reset values for: autocd, checkjobs,
-         complete_fullquote, dirspell, failglob, globstar, gnu_errfmt,
-         huponexit, inherit_errexit, interactive_comments, lastpipe,
-         no_empty_cmd_completion, progcomp.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-       - reset_shopt_options: make sure the following options have the right
-         defaults based on #defines: checkjobs, checkwinsize, direxpand,
-         extglob, globasciiranges.  Fix from Grisha Levit
-         <grishalevit@gmail.com>
-
-flags.c
-       - reset_shell_flags: add missing flags, re-initialize history_expansion
-         based on STRICT_POSIX
-
-                                   5/8
-                                   ---
-lib/readline/histexpand.c
-       - history_expand: if any expansion returns 1 from history_expand_internal,
-         indicating that :p was supplied, make it apply to the entire line
-         like tcsh and csh.  Fixes bug reported by Dean Stanton
-         <dstanton@tintri.com>
-
-variables.[ch]
-       - ifsname: move define to variables.h
-
-execute_cmd.c
-       - execute_for_command: check whether or not the word in the for command
-         is IFS; call setifs every time the variable is assigned a value.
-         Fixes bug report from Grisha Levit <grishalevit@gmail.com>
-
-                                  5/16
-                                  ----
-general.c
-       - valid_nameref_value: explicitly handle name == 0 and *name == 0 right
-         away to save calls to legal_identifier
-
-builtins/declare.def
-       - declare_internal: if trying to set nameref attribute on a variable
-         with a null value, flag as invalid assignment, just as if running
-         `declare -n r=""'.  Fixes bug report from Grisha Levit
-         <grishalevit@gmail.com>
-       - declare_internal: when creating a variable with a temporary value
-         (""), use ASS_FORCE in the assignment flags to bypass name validity
-         checks on nameref variable names
-
-variables.c
-       - bind_variable_internal: don't call valid_nameref_value if we're
-         forcing assignment with (flags & ASS_FORCE)
-
-builtins/read.def
-       - read_builtin: handle bind_variable returning NULL when setting REPLY.
-         Report and fix from Grisha Levit <grishalevit@gmail.com>
-
-builtins/setattr.def
-       - set_var_attribute: handle bind_variable returning NULL
-
-lib/sh/tmpfile.c
-       - sh_seedrand(): call srandom() to seed the random number generator
-       - sh_mktmpname, sh_mktmpfd: if we have random(), assume we have
-         srandom() and seed the random number generator. Still looking for
-         better value to see random number generator with
-
-variables.c
-       - check_unbind_variable: use internal_error instead of builtin_error
-
-{execute_cmd,variables}.c
-       - fix some places where bind_variable could return NULL and it was not
-         checked.  Fix from Piotr Grzybowski <narsil.pl@gmail.com>
-
-                                  5/17
-                                  ----
-arrayfunc.c
-       - convert_var_to_{array,assoc}: make sure to turn off nameref attribute,
-         since namerefs can't be arrays
-
-execute_cmd.c
-       - coproc_setvars: if the coproc name names a nameref, resolve the
-         nameref and use it as the name of the coproc.  Suggested by Grisha
-         Levit <grishalevit@gmail.com>
-
-subst.c
-       - command_substitute: don't bother calling QUIT after calling
-         reset_signal_handlers in the child, kill the child with SIGINT in
-         case we just reset the signal handler to SIG_DFL and we should just
-         exit instead of throwing to top level.  Fixes bug reported by
-         Grisha Levit <grishalevit@gmail.com>
-
-                                  5/18
-                                  ----
-variables.c
-       - find_variable_nameref_for_create: find a nameref variable whose value
-         doesn't resolve to an existing variable and see whether or not that
-         value is appropriate for a new variable to be created
-       - find_variable_nameref_for_assignment: find a nameref variable whose
-         value doesn't resolve to an existing variable and see whether or not
-         that value is appropriate for a new variable to be created.
-         Difference between _assignment and _create is that _assignment
-         allows the nameref value to be a subscripted array reference
-
-builtins/setattr.def
-       - set_var_attribute: if variable lookup doesn't return anything, check
-         for a nameref and make sure that any reference value is something we
-         should be working on here, using find_variable_nameref_for_create().
-         If it fails, error out and return, otherwise it's probably a reference
-         to a variable that hasn't been set yet, so let bind_variable take care
-         of that.  Report from Grisha Levit <grishalevit@gmail.com>
-
-arrayfunc.c
-       - bind_array_variable: if find_shell_variable returns NULL, check for a
-         nameref using find_variable_nameref_for_create and create a new array
-         variable with the value if it returns a valid nameref variable.
-         Makes `unset var; declare -n ref=var ; ref[0]=foo' work right.
-         Report from Grisha Levit <grishalevit@gmail.com>
-
-                                  5/19
-                                  ----
-variables.[ch]
-       - unbind_variable_noref: unset a variable NAME without following any
-         nameref chain.  If the first instance of the variable with that name
-         is a nameref, just unset that nameref variable.
-
-builtins/getopts.def
-       - getopts_unbind_variable: if OPTARG is going to be unbound, use
-         unbind_variable_noref to unbind that name even if it is a nameref
-         variable.  Issue raised by Grisha Levit <grishalevit@gmail.com>
-
-execute_cmd.c
-       - coproc_unsetvars: use unbind_variable_noref in case someone sets the
-         coproc _PID variable as a nameref pointing to something read-only or
-         strange.  Issue raised by Grisha Levit <grishalevit@gmail.com>
-
-builtins/set.def
-       - set_ignoreeof: use unbind_variable_noref to unset "IGNOREEOF" and
-         "ignoreeof"
-       - set_posix_mode: use unbind_variable_noref to unset "POSIXLY_CORRECT"
-
-variables.c
-       - make_vers_array: use unbind_variable_noref to unset "BASH_VERSINFO"
-
-lib/sh/shmatch.c
-       - sh_regmatch: use unbind_variable_noref to unset "BASH_REMATCH"
-
-bashline.c
-       - bash_execute_unix_command: use check_unbind_variable to unset
-         READLINE_LINE and READLINE_POINT
-
-pcomplete.c
-       - unbind_compfunc_variables: use unbind_variable_noref to unset
-         COMP_LINE, COMP_POINT, COMP_WORDS, COMP_CWORD, COMP_TYPE, COMP_KEY
-       - gen_shell_function_matches: use unbind_variable_noref to unset
-         COMPREPLY
-
-config-top.h
-       - USE_MKTEMP/USE_MKSTEMP: define by default to use libc version of
-         mktemp and mkstemp in lib/sh/tmpfile.c.  Recommended by Mike
-         Frysinger <vapier@gentoo.org> to fix a FreeBSD problem
-
-configure.ac,config.h.in
-       - mkstemp: check for mkstemp, define HAVE_MKSTEMP if available
-
-config-bot.h
-       - USE_MKSTEMP: #undef if HAVE_MKSTEMP not defined
-
-                                  5/22
-                                  ----
-variables.c
-       - assign_in_env: if appending to a variable's value, make sure we call
-         make_variable_value with the empty string if expand_assignment_string_to_string
-         returns NULL, as do_assignment_internal does.  Fixes bug with
-         `str=''; val=foo ; val+=str printenv val' reported by Grisha Levit
-         <grishalevit@gmail.com>
-       - assign_in_env: if assigning to a nameref variable in the temporary
-         environment, and the nameref has a valid value for assignment (even
-         if the target variable is not set), resolve the nameref and create
-         a variable in the temporary environment named by the nameref's value.
-         If the nameref variable is invisible or isn't set to a valid value
-         for assignment, just create a regular temporary variable with the
-         nameref's name.  This provides a degree of ksh93 compatibility.
-         Suggested by Grisha Levit <grishalevit@gmail.com>
-       - find_variable_nameref_context,find_variable_last_nameref_context:
-         instead of returning NULL when detecting a loop, return a
-         distinguished value: &nameref_maxloop_value
-       - bind_variable: catch nameref_maxloop_value so we can do different
-         things based on whether or not we get it.  Right now we don't do
-         anything different, but we could
-
-                                  5/24
-                                  ----
-lib/readline/display.c
-       - update_line,_rl_move_cursor_relative: save value of MB_CUR_MAX in a
-         variable and use it throughout the functions instead of recomputing it
-         every time (which possibly costs a function call)
-
-                                  5/25
-                                  ----
-builtins/declare.def
-       - declare_internal: only check whether the value being assigned to a
-         nameref variable is a valid identifier if we're not appending to an
-         existing value.  Suggested by Grisha Levit <grishalevit@gmail.com>
-       - declare_internal: add a couple of more checks on nameref names:
-               o make sure `declare -n x[3]=y' is an error
-               o nameref variable self-references now produce a warning when
-                 in function scope
-               o nameref variable self-references using subscripted arrays
-                 (a=a[0]) now produce warnings at function scope and errors at
-                 global scope
-
-                                  5/29
-                                  ----
-builtins/declare.def
-       - declare_internal: use name of readonly variable when calling sh_readonly      
-         instead of name passed as argument to declare in case we've followed
-         a nameref chain
-       - declare_internal: when turning off attributes on a nameref variable
-         after following the nameref chain and turning them off on the target
-         variable, don't allow the readonly attribute to be removed.  This is
-         primarily intended to turn off the nameref attribute.  Issue pointed
-         out by Grisha Levit <grishalevit@gmail.com>
-       - declare_internal: if we are attempting to modify an existing global
-         nameref variable, and the -n option is supplied, operate on the
-         nameref variable itself, not the variable it references
-
-doc/{bash.1,bashref.texi}
-       - change the descriptions of namerefs and declare -n slightly to note
-         that using the -n option to declare will operate on the nameref
-         variable itself rather than the variable it references
-
-variables.c
-       - bind_variable_internal: if trying to assign to a read-only variable,
-         print the error message using the variable's name instead of the
-         name passed to bind_variable in case we followed a nameref
-
-builtins/declare.def
-       - declare_internal: when we're creating a (possibly invisible) variable
-         as part of another operation, assigning NULL, make sure to use
-         ASS_FORCE to avoid warning messages from any existing nameref
-         variables we follow
-       - declare_internal: allow the nameref attribute to be removed from a
-         readonly nameref variable without a value but do not allow it to be
-         removed from a readonly nameref variable that has a value, even if it
-         doesn't reference an existing variable.  This distinction is for ksh93
-         compatibility.  Pointed out by Grisha Levit <grishalevit@gmail.com>
-
-                                  5/31
-                                  ----
-builtins/declare.def
-       - declare_internal: if the call to bind_variable_value fails for some
-         reason, make sure to restore the nameref attribute to flags_on and
-         flags_off before calling NEXT_VARIABLE
-
-subst.c
-       - make_internal_declare: handle += append op
-       - shell_expand_word_list: when transforming assignment statement
-         arguments to `declare', make sure to handle += append op to avoid
-         passing invalid identifiers to declare.  Report by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                   6/1
-                                   ---
-builtins/declare.def
-       - declare_internal: if a nameref assignment fails, only call delete_var
-         to delete the variable if we created it in declare_internal in the
-         first place
-
-general.c
-       - check_selfref: new function, checks a NAME against a VALUE for nameref
-         self-reference
-
-general.h
-       - check_selfref: extern declaration
-
-builtins/declare.def
-       - declare_internal: call check_selfref to determine whether a given NAME
-         and VALUE constitute an invalid nameref variable self-reference
-
-variables.c
-       - bind_variable_internal: call check_selfref to determine whether a
-         given NAME and VALUE constitute an invalid nameref variable self-
-         reference
-
-                                   6/2
-                                   ---
-parse.y
-       - clear_shell_input_line: new function, clears contents of shell_input_line
-         and sets index to 0, but doesn't free it
-
-externs.h
-       - clear_shell_input_line: extern declaration
-
-builtins/evalstring.c
-       - parse_and_execute: call clear_shell_input_line after setting input to
-         string to be executed.  Fixes problem with command substitution and
-         multi-line aliases reported by Grisha Levit <grishalevit@gmail.com>
-
-eval.c
-       - parse_command: only execute PROMPT_COMMAND if the shell is not
-         currently expanding an alias; use the same tests as parse.y:SHOULD_PROMPT
-         and parse.y:prompt_again() use to decide whether or not to print a
-         prompt.  Fixes problems with PROMPT_COMMAND and multi-line aliases
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-builtins/set.def
-       - unset_builtin: changes to fix three problems reported by Grisha
-         Levit <grishalevit@gmail.com>:
-               o if -n is supplied, we should not try to unset a function if
-                 a variable isn't found
-               o unsetting namerefs whose values are array references does
-                 not work
-               o unset -n n[0], where n is a nameref, would unset the
-                 referenced variable instead of `n'
-
-redir.c
-       - redir_varvalue: handle case where nameref var points to subscripted
-         array reference.  Reported by Grisha Levit <grishalevit@gmail.com>
-
-variables.c
-       - bind_variable_value: make sure to call check_selfref only if aflags
-         includes ASS_NAMEREF and not ASS_FORCE.  Reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-general.c
-       - valid_nameref_value: now understands a FLAGS value of 2 to mean that
-         the name will be used to create a variable, so only legal_identifier
-         matters
-
-arrayfunc.c
-       - find_or_make_array_variable: call valid_nameref_value with FLAGS value
-         of 2 to indicate we will be creating a variable.  Fixes mapfile issue
-         reported by Grisha Levit <grishalevit@gmail.com>
-
-                                   6/5
-                                   ---
-builtins/declare.def
-       - declare_internal: only pass ASS_FORCE as part of assignment flags to
-         assignments concerning arrays
-       - declare_internal: when at the global scope, if we resolve a nameref
-         and commit to using the new name, go back to to the beginning of the
-         loop and use the new name in the checks and variable references.
-         Make sure we construct the new name as a straight substitution of
-         the nameref value into the old name, including array subscripts and
-         rebuilding the correct values for `offset' and `value', since they
-         are relative to the original value of name.
-         Fixes several issues with checking use of subscripted array variables
-         as nameref values
-       - declare_internal: when calling assign_array_element, make sure to
-         pass ASS_APPEND if aflags includes it, so things like
-               declare -a var; var[1]=1; declare var[1]+=4
-         append to the value appropriately and var[1] ends up being `14'
-
-arrayfunc.c
-       - valid_array_reference: make sure the array reference is properly
-         terminated after the first subscript; return invalid if there is
-         anything following the closing `]'
-
-                                  6/12
-                                  ----
-variables.c
-       - bind_variable_internal: if asked to perform an array subscript
-         assignment on a nameref variable, display a warning and remove the
-         nameref attribute (as bash-4.3 did).  Reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                  6/14
-                                  ----
-test.c
-       - posixtest: handle four-argument case where argv[1] == '(' and
-         argv[4] == ')' by performing two-argument test on $2 and $3.
-         Reported by Joerg Schilling <Joerg.Schilling@fokus.fraunhofer.de>
-
-                                  6/15
-                                  ----
-variables.c
-       - sv_ignoreeof: make sure ignoreeof is set only if IGNOREEOF is set and
-         has a value (no `local IGNOREEOF'). Reported by Grisha Levit
-         <grishalevit@gmail.com>
-       - sv_strict_posix: make sure posixly_correct is set only if
-         POSIXLY_CORRECT is set and has a value.  Reported by Grisha Levit
-         <grishalevit@gmail.com>
-
-                                  6/16
-                                  ----
-builtins/declare.def
-       - declare_internal: analogous to 6/12 change; when performing an array
-         subscript assignment on a nameref, display a warning, remove the
-         nameref attribute, and go on
-
-                                  6/21
-                                  ----
-execute_cmd.c
-       - shell_execve: make sure errno is (re)set appropriately before
-         returning error value on exec format error
-
-                                  6/23
-                                  ----
-subst.c
-       - param_expand: when expanding $* in a context where splitting is not
-         desired (pflags & PF_ASSIGNRHS), make sure to quote the word and the
-         included separators.  Reported by Dan Douglas <ormaaj@gmail.com>
-
-                                  6/30
-                                  ----
-configure.ac
-       - release version is now `beta2'
-
-execute_cmd.c
-       - execute_simple_command: even if already_making_children is non-zero,
-         don't call wait_for if last_made_pid == NO_PID.  Indirectly inspired
-         by report from Nicolas Vivet <nicolas@nzx.io>
-
-                                   7/2
-                                   ---
-subst.c
-       - expand_word_internal: when adding an IFS character to the accumulated
-         string, don't quote it if word expansion is not going to be
-         performed ((word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0) in the
-         default case.  This was already the case everwhere else, when we did
-         `goto add_ifs_character;'.  Fixes bug reported by Ibrahim M. Ghazal
-         <imgx64@gmail.com>
-
-subst.[ch],arrayfunc.c
-       - string_list_dollar_at: now takes a new third argument, currently
-         reserved for future use; changed callers and declaration
-
-                                   7/7
-                                   ---
-[bash-4.4-beta2 frozen]
-
-                                   7/9
-                                   ---
-bashline.c
-       - check_redir: make sure that index is > 0 before checking previous
-         char; fixes out of bounds read reported by Hanno Böck
-         <hanno@hboeck.de>
-
-                                  7/16
-                                  ----
-subst.c
-       - parameter_brace_expand: if ${array[@]} or ${array[*]} is supplied
-         with an unset (or empty) array, and -u is enabled, don't make it
-         an unbound variable error, like $@ or $* when there are no
-         positional parameters.  Based on report from Ian Allen
-         <idallen@idallen-fibe.dyndns.org>
-
-lib/readline/signals.c
-       - rl_pending_signal(): return the number of any signal readline has
-         caught but is waiting to handle
-
-lib/readline/callback.c
-       - rl_persistent_signal_handlers: new variable, restores readline-6.2
-         signal handler semantics: installed at rl_callback_handler_install
-         time and removed with rl_clear_signals when a complete line has
-         been read
-       - _rl_callback_newline: call rl_set_signals if rl_persistent_signal_handlers
-         is non-zero
-       - rl_callback_read_char: install signal handlers with rl_set_signals
-         if rl_persistent_signal_handlers is 0 (the default)
-       - CALLBACK_READ_RETURN: uninstall signal handlers with rl_clear_signals
-         only if rl_persistent_signal_handlers is 0 (the default)
-
-lib/readline/readline.h
-       - rl_pending_signal: new extern declaration
-       - rl_persistent_signal_handlers: new extern declaration
-
-                                  7/19
-                                  ----
-execute_cmd.c
-       - execute_while_or_until: make sure we decrement `continuing' the way
-         we decrement `breaking' if the loop test indicates we will be
-         breaking out of the loop.  That keeps `until continue' from
-         keeping `continuing' set to 1.  Reported by Dan Douglas
-         <ormaaj@gmail.com>
-
-                                  7/20
-                                  ----
-trap.c
-       - run_pending_traps,_run_trap_internal: save and restore temporary_env,
-         set temporary_env to 0 before trap runs so traps don't inherit a
-         command's temporary env.  Fixes bug with IFS assignment in tempenv
-         and trap reported by Andriy Martynets <martynets@volia.ua>
-
-jobs.c
-       - run_sigchld_trap: save and restore temporary_env, set temporary_env
-         to 0 before trap runs so traps don't inherit a command's temporary
-         env (see above)
-
-                                  7/21
-                                  ----
-execute_cmd.c
-       - execute_function: unwind-protect function_line_number, in case we
-         are executing a function inside another function.  Reported by
-         Grisha Levit <grishalevit@gmail.com> in context of evaled functions
-         and DEBUG traps
-       - execute_arith_for_command,execute_arith_command,execute_simple_command,
-         execute_cond_command: make sure line_number doesn't go < 0 when
-         adjusting it by function_line_number
-
-                                  7/23
-                                  ----
-subst.c,command.h
-       - move the PF_ constants to command.h so other files can see them, now
-         that PF_ASSIGNRHS has meaning to string_list_dollar_at
-
-arrayfunc.h
-       - AV_ASSIGNRHS: new flag, indicate that ${a[@]} is being expanded on
-         the RHS of an assignment statement
-
-arrayfunc.c
-       - array_value_internal: if AV_ASSIGNRHS passed for ${a[@]}, pass
-         PF_ASSIGNRHS to string_list_dollar_at to support args separated by
-         spaces even if $IFS does not have the default value.  Reported by
-         Dan Douglas <ormaaj@gmail.com>
-
-subst.c
-       - string_list_dollar_at: if FLAGS argument includes PF_ASSIGNRHS, obey
-         rules for $@ on the RHS of an assignment statement: expand to
-         postitional parameters separated by spaces no matter what the first
-         character of $IFS is.  Reported by Dan Douglas <ormaaj@gmail.com>
-       - parameter_brace_expand_word: pass AV_ASSIGNRHS as flags value to
-         array_value if PF_ASSIGNRHS is set and we are expanding an array
-         variable subscripted by @ or *
-       - param_expand: pass pflags to string_list_dollar_at in case it contains
-         PF_ASSIGNRHS
-       - expand_word_internal: if we have an assignment statement argument to
-         a declaration builtin (W_ASSIGNARG), turn on W_ASSIGNRHS when we see
-         the `=' to enable special $@ behavior
-       - expand_word_internal: if W_ASSIGNARG enabled in word flags, pass that
-         flag and W_ASSIGNRHS to recursive call to expand_word_internal when
-         expanding double-quoted string; handles "$@" when IFS is not the
-         default value and word splitting will not be performed
-
-subst.c
-       - expand_word_internal: change case that handles '' (single-quoted
-         empty string) to only discard it if we will not be performing word
-         splitting (W_NOSPLIT|W_NOSPLIT2), since we need to add a quoted null
-         argument if the subsequent characters will cause word splitting.
-         This is how "" (double-quoted empty string) is handled after a bug
-         fix back in August 2010.  Reported by Grisha Levit
-         <grishalevit@gmail.com>, fix for Posix interp 888
-
-                                  7/27
-                                  ----
-subst.c
-       - param_expand: change fix from 6/23 (expanding $* in a context where
-         word splitting is not performed) to make sure that $* expands to
-         something before trying to quote the string.  Bug and fix from
-         Andreas Schwab <schwab@suse.de>
-
-lib/readline/bind.c
-       - _rl_get_string_variable_value: fix a cut-and-paste error that caused
-         the emacs mode string to be displayed for both vi insert and command
-         mode strings.  Report and fix from Steve Jones <sjml@slohj.org>
-
-                                  7/28
-                                  ----
-lib/readline/display.c
-       - update_line: we can't use PROMPT_ENDING_INDEX unless we're testing
-         against _rl_last_c_pos; if we are testing buffer indices, we need to
-         use prompt_last_invisible directly.  Fixes mode string redisplay issue
-         with short prompt strings reported by Steve Jones <sjml@slohj.org>
-
-                                   8/4
-                                   ---
-nojobs.c
-       - without_job_control: new function, resets child state that's
-         eventually used to decide whether or not to wait_for children
-
-execute_cmd.c
-       - initialize_subshell: call without_job_control in both the
-         JOB_CONTROL and no job control paths so we can reset the state in
-         subshells that will not cause them to wait_for children
-         inappropriately.  Fixes bug reported by Dan Cross <crossd@gmail.com>
-
-                                   8/5
-                                   ---
-configure.ac
-       - release version is now `rc2'
-
-bashline.c
-       - command_word_completion_function: if direxpand is set, make sure to
-         run hint_text through bash_directory_completion_hook, since
-         readline will do that and we want to be able to match the results
-         readline returns.  Fixes bug reported by Pat Somaru
-         <tuf18542@temple.edu>
-
-command.h
-       - W_COMPLETE: new flag word value
-       - PF_COMPLETE: new flags value for param_expand
-
-subst.h
-       - SX_STRIPDQ: new flag, used for string_extract_double_quoted
-
-bashline.c
-       - bash_filename_stat_hook,bash_directory_completion_hook: pass W_COMPLETE
-         flag to expand_prompt_string
-
-subst.c
-       - expand_word_internal: if W_COMPLETE in word->flags, pass PF_COMPLETE
-         to param_expand
-       - param_expand: if PF_COMPLETE in pflags, pass SX_COMPLETE to
-         extract_command_subst.  This allows `"$(echo ~/' to perform
-         completion successfully
-       - string_extract_double_quoted: turn third argument into a flags arg,
-         old STRIPDQ is now set if flags&SX_STRIPDQ
-       - string_extract_double_quoted: changed callers, if third argument was
-         1, pass SX_STRIPDQ instead
-       - expand_word_internal: if W_COMPLETE in word->flags, pass SX_COMPLETE
-         in flags to string_extract_double_quoted for case '"'
-       - string_extract_double_quoted: if SX_COMPLETE in flags, pass it to
-         extract_command_subst
-       - expand_word_internal: if W_COMPLETE in word->flags, make sure W_COMPLETE
-         is in temp word passed to recursive call to expand_word_internal to
-         expand double-quoted string.  Fixes bug reported by John Passaro
-         <john.a.passaro@gmail.com>
-
-                                   8/9
-                                   ---
-[bash-4.4-rc2 frozen]
-
-                                  8/10
-                                  ----
-subst.c
-       - sub_append_string: use size_t variable to store string length to
-         avoid integer overflow.  Report from Siteshwar Vashisht
-         <svashisht@redhat.com>
-       - sub_append_string: `size' argument is now pointer to size_t; changed
-         istring_index in expand_word_internal to accommodate change
-
-lib/sh/ufuncs.c
-       - include "posixselect.h" if HAVE_SELECT is defined, make sure that
-         fd_set and the rest are defined
-
-                                  8/11
-                                  ----
-lib/readline/histexpand.c
-       - history_tokenize_word: use ISDIGIT instead of isdigit for more
-         argument checking
-       - "chardefs.h": include for ISDIGIT define and <ctype.h>.  Fix from
-         Mike Frysinger <vapier@gentoo.org>
-
-lib/sh/eaccess.c,externs.h
-       - sh_eaccess: first argument now const char *
-       - sh_stataccess,sh_euidaccess: first argument now const char *, since
-         sh_stat and sh_eaccess call them.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-lib/glob/glob.c
-       - sh_eaccess: change local prototype
-
-general.[ch]
-       - all_digits,legal_identifier,valid_nameref_value,importable_function_name,
-         exportable_function_name,check_binary_file,file_exists,file_isdir,
-         file_iswdir,same_file,make_absolute,valid_nameref_value: first
-         argument (always identifier or filename) is now a `const char *';
-         some second filename arguments now `const char *'.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-configure.ac,config.h.in
-       - uintptr_t: make sure it's defined to an integer type wide enough to
-         hold a pointer
-
-lib/sh/tmpfile.c
-       - sh_seedrand: use `uintptr_t' to cast pointer value to int value,
-         instead of allowing truncation to take place, since srandom takes
-         an `unsigned int'.
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-arrayfunc.[ch]
-       - valid_array_reference,array_variable_name,array_variable_part,
-         array_value_internal,array_value,get_array_value: first argument
-         (always variable name) now a `const char *'
-         Fix from Mike Frysinger <vapier@gentoo.org>
-
-                                  8/19
-                                  ----
-print_cmd.c
-       - xtrace_print_word_list: if (xtflags & 2), don't try to quote the
-         words in the LIST argument.  Intended to be used in places where
-         the list has not yet been expanded
-       - xtrace_print_for_command_head: call xtrace_print_word_list with
-         flags argument of 2.  Fixes issue reported by Aharon Robbins
-         <arnold@skeeve.com>
-       - xtrace_print_select_command_head: call xtrace_print_word_list with
-         flags argument of 2
-
-                                  8/21
-                                  ----
-lib/sh/netopen.c
-       - netopen: fix memory leak by freeing allocated path before error
-         return.  Fix from Dmitry Goncharov <dgoncharov@users.sf.net>
-
-doc/{bash.1,bashref.texi}
-       - change conditional commands description to make it clearer that
-         bash doesn't emulate /dev/fd if the OS provides it
-
-                                  8/22
-                                  ----
-braces.c
-       - expand_amble: free partial and tem on failure to allocate memory
-         for merged partial+result strvec.  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-
-                                  8/23
-                                  ----
-jobs.c
-       - wait_for: don't call get_tty_state when a job finishes if we're
-         running it as part of programmable completion.  We test
-         rl_readline_state.  Fixes bug reported by Jaro Punta
-         <silly8888@gmail.com>
-
-                                  8/24
-                                  ----
-subst.c
-       - pat_subst: fix memory leak (mstr).  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-       - split_at_delims: fix memory leak (d2).  Fix from Dmitry Goncharov
-         <dgoncharov@users.sf.net>
-
-                                  8/26
-                                  ----
-subst.c
-       - match_upattern,match_wpattern: make sure that a trailing `*' is
-         not escaped (preceded by an odd number of backslashes) before we
-         append a `*' when checking whether a pattern matches anywhere in
-         the string
-
-lib/readline/{input,signals}.c
-       - protect instances of SIGQUIT with #ifdef SIGQUIT; apparently
-         MinGW doesn't define it
-       - protect instances of SIGHUP with #ifdef SIGHUP; apparently
-         MinGW doesn't define it.  From a report from Simon Sobisch
-         <simonsobisch@gnu.org>
-
-xmalloc.o
-       - allocerr: only try to find the break and report it if we're using
-         the bash malloc; there's no guarantee that any other malloc is
-         using sbrk()
-
-doc/{bash.1,bashref.texi}
-       - quote removal: add paragraph mentioning quote removal to beginning
-         of expansions section, referencing later paragraph.  Report from
-         Michel Lanne <michel.lanne@gmail.com>
-
-                                  8/30
-                                  ----
-lib/readline/input.c
-       - protect instances of SIGALRM and SIGWINCH with #ifdef; apparently
-         MinGW doesn't define them.  From a report from Simon Sobisch
-         <simonsobisch@gnu.org>
-
-subst.c
-       - SPECIAL_VAR: make sure name is not the empty string before going on,
-         empty strings can result in unitialized reads
-       - CHECK_STRING_OVERRUN: semi-general macro to use in *extract* and
-         similar functions to to check whether a function called to parse an
-         embedded construct (like a backquoted command substitution) doesn't
-         consume the entire string because it's unterminated
-       - skip_double_quoted: make sure other extraction functions don't
-         consume the entire string (which they can if the construct is
-         unterminated) before incrementing the index and going on.  Uses
-         CHECK_STRING_OVERRUN
-       - extract_dollar_brace_string: check for unterminated embedded
-         constructs consuming the entire string with CHECK_STRING_OVERRUN ('`')
-       - skip_matched_pair: use CHECK_STRING_OVERRUN to make sure unterminated
-         embedded "`", $(, ${ don't cause out-of-bounds reads
-
-parse.y
-       - parse_comsub: when parsing a here-document delimiter, make sure we
-         don't try to use `nestret' after freeing it.  Fixes bug reported by
-         Franco Costantini <franco.costantini.20@gmail.com>
-
-[bash-4.4 frozen]
-
-                                  9/10
-                                  ----
-trap.c
-       - run_debug_trap: only give the terminal to pipeline_pgrp if
-         subshell_environment doesn't include SUBSHELL_ASYNC|SUBSHELL_PIPE.
-         Fixes bug reported by Matthew Giassa <matthew@giassa.net>
-
-execute_cmd.c
-       - execute_simple_command: if user_subshell is set, check and set
-         SUBSHELL_ASYNC if asynchronous is set as well as setting
-         SUBSHELL_PAREN
+[bash-4.4 released]
 
                                   9/17
                                   ----
@@ -15536,3 +3841,35 @@ bashline.c
          for an empty command word on an otherwise blank line, making the
          presence of assignment statements optional.  Report from
          Luca Boccassi <bluca@debian.org>
+
+                                  6/20
+                                  ----
+lib/malloc/malloc.c
+       - morecore,internal_malloc,internal_free: requests for more than
+         128K bytes (defined as MMAP_THRESHOLD and saved in the new
+         malloc_mmap_threshold variable) are now satisfied via mmap and
+         freed via munmap. We only use mmap if we have mmap and MAP_ANON
+         (or MAP_ANONYMOUS). These blocks are not available for splitting
+         or coalescing, so every request for 128K bytes or smaller is
+         satisfied via sbrk(). We don't use mremap for realloc yet, but
+         we could in the future
+
+lib/malloc/mstats.h
+       - malloc_stats: the malloc stats now include the number of calls to
+         mmap and the total number of bytes requested via mmap. The number
+         of calls to munmap is captured in each bucket's lesscore count
+
+lib/malloc/stats.c
+       - print_malloc_stats: now prints an indication of where the change from
+         sbrk to mmap takes place, and prints number of mmap calls and total
+         number of bytes allocated using mmap
+
+                                  6/22
+                                  ----
+variables.c
+       - get_bashargcv: new dynamic "fetch" variable for BASH_ARGV and
+         BASH_ARGC, for backwards compatibility: if a script makes a
+         reference to either variable at the top level (not in a shell
+         function) without enabling debugging mode and not having initialized
+         the variable previously (using a simple semaphore), create the
+         variables
diff --git a/CWRU/old-changelogs/CWRU.chlog.v15 b/CWRU/old-changelogs/CWRU.chlog.v15
new file mode 100644 (file)
index 0000000..ffd692f
--- /dev/null
@@ -0,0 +1,11699 @@
+                                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 <dearvoid@gmail.com>
+
+                                  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 <jue@jue.li>
+
+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
+         <dearvoid@gmail.com>
+
+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 <dearvoid@gmail.com>
+
+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
+         <vapier@gentoo.org>
+
+                                  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 <dennistwilliamson@gmail.com>
+
+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 <jojo@schmitz-digital.de>
+
+support/shobj-conf
+       - add a stanza for nsk on the Tandem from Joachim Schmitz
+         <jojo@schmitz-digital.de>
+
+{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
+         <jojo@schmitz-digital.de>
+
+                                   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 <foutrelis@gmail.com>
+
+                                   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 <mfwitten@gmail.com>
+
+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
+         <nathanael@gnat.ca> and Matthias Klose <doko@debian.org>
+
+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 <mfwitten@gmail.com>
+       - 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 <mfwitten@gmail.com>
+       - 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 <mfwitten@gmail.com>
+       - 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 <mfwitten@gmail.com>
+
+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 <andres.p@zoho.com>
+
+                                   3/4
+                                   ---
+lib/readline/bind.c
+       - add a missing free of `names' in rl_function_dumper.  Bug report
+         and fix from Michael Snyder <msnyder@vmware.com>
+
+                                   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 <micah@cowan.name>
+
+                                   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 <torvalds@linux-foundation.org>, bug report originally
+         from Oleg Nesterov <oleg@redhat.com>
+
+                                   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 <cfajohnson@gmail.com>
+
+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 <rrakus@redhat.com>
+
+                                  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 <werner@suse.de>
+       - 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 <sam@liddicott.com>
+
+                                  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 <blue3waters@gmail.com>
+
+                                  3/26
+                                  ----
+lib/readline/rltypedefs.h
+       - remove old Function/VFunction/CPFunction/CPPFunction typedefs as
+         suggested by Tom Tromey <tromey@redhat.com>
+
+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
+         <tromey@redhat.com>
+
+                                  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 <dennistwilliamson@gmail.com>
+
+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 <h.bekel@googlemail.com>
+
+                                  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 <mfwitten@gmail.com>
+
+lib/readline/display.c
+       - include <pc.h> 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 <pc.h> 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  <eliz@gnu.org>
+
+                                   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 <arbogast.cedric@gmail.com>
+
+                                  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 <mdinger.bugzilla@gmail.com>
+
+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 <dearvoid@gmail.com>
+
+                                  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 <rrakus@redhat.com>
+
+                                  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
+         <piuma@piumalab.org>
+
+                                  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." <skunk@iSKUNK.ORG>
+
+                                  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
+         <johan.hattne@utsouthwestern.edu>
+
+                                   5/2
+                                   ---
+doc/{bash.1,bashref.texi}
+       - add forward reference to `Pattern Matching' from `Pathname
+         Expansion', suggested by Greg Wooledge <wooledg@eeg.ccf.org>
+
+                                   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 \<CTLESC> 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 <sbohrer@rgmadvisors.com>
+
+                                   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 <rrakus@redhat.com>
+
+                                   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 <rbyshko@gmail.com>
+
+                                  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 <marten.wikstrom@keystream.se>
+
+                                  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 <arbogast.cedric@gmail.com>
+
+                                  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 <mlichvar@redhat.com>
+
+builtins/help.def
+       - help_builtin: change strncmp to strcmp so that `help read' no longer
+         matches `readonly'.  Suggested by Clark Wang <dearvoid@gmail.com>
+
+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 <samuel.thibault@gnu.org>
+
+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
+         <d.l.tDecontes@free.fr>
+
+                                  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
+         <keithw@mit.edu>
+
+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
+         <cubranic@stat.ubc.ca>
+
+                                  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 <eblake@redhat.com>
+
+                                  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
+         <kulkarniniraj14@gmail.com>
+
+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
+         <mark.herbert@gmail.com>
+
+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
+         <qiaomuf@gentoo.org>
+
+                                  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 <jrnieder@gmail.com>
+
+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
+         <curtis@greenkey.net>
+
+                                  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 <lrhorer@satx.rr.com>
+
+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 <ville.skytta@iki.fi>
+
+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 <rsantos@grupopie.com>
+
+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
+         <arnold@skeeve.com>
+
+                                  6/30
+                                  ----
+execute_cmd.c
+       - execute_pipeline: make sure the lastpipe code is protected by
+         #ifdef JOB_CONTROL.  Fixes problem reported by Thomas Cort
+         <tcort@minix3.org>
+
+                                   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 <jan.ktratochvil@redhat.com> 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 <arnold@skeeve.com>
+
+                                   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 <dearvoid@gmail.com>
+       - _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
+         <jan.kratochvil@redhat.com>
+
+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 <ralph@inputplus.co.uk>
+
+                                  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
+         <mlichvar@redhat.com>
+
+builtins/printf.def
+       - getint: if garglist == 0, return whatever getintmax returns (0).
+         Fixes bug reported  by Ralph Coredroy <ralph@inputplus.co.uk>
+
+                                  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 <gmargo@pacbell.net>
+
+                                   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
+         <lhunath@lyndir.com>
+
+                                   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 <bash@tlinx.org>.
+         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
+         <ohnobinki@ohnopublishing.net> -- 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 <vince.sheffer@apisphere.com>
+
+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 <rrakus@redhat.com>
+
+                                  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
+         <rrakus@redhat.com>
+
+                                   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 <diegoaugustomolina@gmail.com>
+
+                                  9/19
+                                  ----
+expr.c
+       - exppower: replace the simple exponentiation algorithm with an
+         implementation of exponentiation by squaring.  Inspired by report
+         from Nicolas ARGYROU <nargy@yahoo.com>
+
+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 <backuppc-users@whitleymott.net>
+
+doc/{bash.1,bashref.texi},lib/readline/doc/{hsuser,rluser}.texi
+       - minor editorial changes inspired by suggestions from
+         Roger Zauner <rogerx.oss@gmail.com>
+
+                                  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
+         <bensberg@justemail.net>
+       - 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 <daysleeper@centrum.cz>
+
+                                  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
+         <bugs@kayari.org>
+       - 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 <pto@linuxbog.dk> and Patrick Pfeifer
+         <patrick@pfeifer.de>
+       - 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 <patrick@pfeifer.de>
+
+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 <dearvoid@gmail.com>
+
+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 <davidparks21@yahoo.com>
+
+                                  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 <jreiser@bitwagon.com>
+         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 <vapier@gentoo.org> 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 <vapier@gentoo.org> 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 <Len.Giambrone@intersystems.com>
+
+                                  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
+         <wooledg@eeg.ccf.org>
+
+                                  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 <lolilolicon@gmail.com>
+
+                                  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 <michael@kalisz.homelinux.net>
+
+                                  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 <jaak.ristioja@cyber.ee>
+       - 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 <ormaaj@gmail.com>
+
+                                  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 <vapier@gentoo.org>
+
+                                  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
+         <jens.schmidt35@arcor.de>
+
+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 <jan.ktratochvil@redhat.com> 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
+         <stephane_chazelas@yahoo.fr>
+
+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 <eggert@cs.ucla.edu>
+
+                                  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 <schwab@linux-m68k.org>
+
+builtins/read.def
+       - skip over NUL bytes in input, as most modern shells seem to.  Bug
+         report by Matthew Story <matt@tablethotels.com>
+
+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
+         <pierre.gaston@gmail.com>
+
+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
+         <g.clare@opengroup.org> 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 <yanegomi@gmail.com>
+       - 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
+         <yanegomi@gmail.com>
+       - 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 <yanegomi@gmail.com>
+       - 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
+         <panyongzhi@gmail.com>
+
+                                  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 <panyongzhi@gmail.com>
+       - 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
+         <dearvoid@gmail.com>
+
+                                  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 <hanzl@noel.feld.cvut.cz>
+
+                                  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
+         <kazikcz@gmail.com>
+
+                                  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 <dethrophes@motd005>
+
+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 <raphael.droz+floss@gmail.com>
+       - 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
+         <ormaaj@gmail.com>
+
+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 <pengyu.ut@gmail.com>
+
+                                  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
+         <bill@ycc.com>
+
+                                  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 <p@draigbrady.com>
+       - 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
+         <raphael.droz+floss@gmail.com>
+
+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 <sungpae@gmail.com>
+
+                                  1/18
+                                  ----
+
+{configure,config.h}.in
+       - new check: check for AUDIT_USER_TTY defined in <linux/audit.h>,
+         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 <mlichvar@redhat.com>
+
+                                  1/21
+                                  ----
+
+lib/readline/readline.c:
+       - _rl_dispatch_subseq: add an inter-character timeout for multi-char
+         key sequences.  Suggested by <rogerx.oss@gmail.com>.  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 <ormaaj@gmail.com>
+
+
+                                  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
+         <pierre.muller@ics-cnrs.unistra.fr>
+
+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 <bash@tlinx.org>
+
+                                   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 <james_avera@yahoo.com>
+
+                                   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 <rogerx.oss@gmail.com>
+       - _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
+         <rogerx.oss@gmail.com>
+
+                                   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 <schwab@linux-m68k.org>
+
+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
+         <Ewan.Mellor@eu.citrix.com>
+
+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
+         <ormaaj@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                  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 <dethrophes@web.de>
+
+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 <dethrophes@web.de>
+       - 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 <dethrophes@web.de>
+
+                                  2/21
+                                  ----
+doc/{bash,builtins}.1
+       - minor changes from Bjarni Ingi Gislason <bjarniig@rhi.hi.is>
+
+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 <derflob@derflob.de>
+
+                                  2/22
+                                  ----
+lib/sh/shquote.c
+       - sh_backslash_quote: quote tilde in places where it would be
+         expanded.  From a report from John Kearney <dethrophes@web.de>
+
+                                  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 <rdkehn@yahoo.com>
+
+                                  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 <dethrophes@web.de>
+       - u32toutf16: function to convert unsigned 32-bit value (unicode) to
+         UTF-16.  From John Kearney <dethrophes@web.de>
+       - 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 <dethrophes@web.de>
+       - 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 <sar@nec-labs.com>
+
+                                   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 <ormaaj@gmail.com>
+
+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 <sami.pietila@gmail.com>
+
+                                   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
+         <werner@suse.de> 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
+         <fabrizio.ge@tiscali.it>
+       - 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 <fabrizio.ge@tiscali.it>
+
+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
+         <siddhesh@redhat.com>
+
+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 <medgar123@gmail.com>
+
+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 <jurij.mihelic@fri.uni-lj.si>
+
+                                  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 <bill@ycc.com>
+
+                                   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
+         <rogerx.oss@gmail.com>; this prompted by report from Barry Downes
+         <barry.downes@gmail.com>
+
+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
+         <wooledg@eeg.ccf.org>
+
+                                  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 <stdbool.h> 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 <petr.sumbera@sun.com>
+
+                                  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 <petr.sumbera@sun.com>
+       - 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 <arnold@skeeve.com>
+
+                                  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 <vapier@gentoo.org>,
+         fix from Andreas Schwab <schwab@linux-m68k.org>
+
+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 <wooledg@eeg.ccf.org>
+
+                                   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 <RKuhlmann@orga-systems.com>
+       - 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 <ormaaj@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                  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 <ormaaj@gmail.com>
+
+                                  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 <backuppc-users@whitleymott.net> and
+         supplemented by Dan Douglas <ormaaj@gmail.com>
+
+doc/{bash.1,bashref.texi}
+       - changes to the description of substring expansion inspired by
+         suggestions from Bill Gradwohl <bill@ycc.com>
+
+doc/bashref.texi
+       - added substring expansion examples inspired by suggestions from
+         Bill Gradwohl <bill@ycc.com>
+
+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 <stddef.h>.  Fix from
+         John E. Malmberg <wb8tyw@qsl.net>
+
+                                   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
+         <levertond@googlemail.com>
+
+                                   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
+         <scotty.mcmillan@gmail.com>
+       - 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" <dave_br@gmx.com>
+
+                                   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 <bash@tlinx.org>
+
+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 <schweikh@schweikhardt.net>
+
+                                  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
+         <nshyrokovskiy@gmail.com>
+
+                                  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 <ormaaj@gmail.com>
+
+                                  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 <wb8tyw@qsl.net>
+
+                                  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
+         <svdb@stack.nl>, fix from Andreas Schwab <schwab@linux-m68k.org>
+       - 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 <max@quendi.de>
+
+                                  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 <dennistwilliamson@gmail.com>
+
+                                  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 <dennistwilliamson@gmail.com>, fix from
+         Andreas Schwab <schwab@linux-m68k.org>
+       - 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 <rainer.blome@gmx.de>
+
+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 <pengyu.ut@gmail.com>
+
+                                  7/24
+                                  ----
+configure.in
+       - interix: define RECYCLES_PIDS.  Based on a report from Michael
+         Haubenwallner <michael.haubenwallner@salomon.at>
+
+                                  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
+         <michael.haubenwallner@salomon.at>
+
+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 <michael.haubenwallner@salomon.at>
+
+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
+         <michael.haubenwallner@salomon.at>
+
+                                  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 <lhunath@lyndir.com>
+
+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
+         <lhunath@lyndir.com>
+
+{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 <sys/param.h> 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 <clark.wang@oracle.com>
+
+                                  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
+         <dearvoid@gmail.com>
+
+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 <techlivezheng@gmail.com>
+
+                                  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 <ormaaj@gmail.com>
+
+                                  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 <armandsl@gmail.com>
+
+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 <vapier@gentoo.org>
+
+                                  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 <soltys@ziu.info>
+
+doc/bashref.texi
+       - some small formatting changes from Karl Berry <karl@freefriends.org>
+
+                                  8/27
+                                  ----
+lib/readline/doc/{history,rlman,rluserman}.texi
+       - some small formatting changes from Karl Berry <karl@freefriends.org>
+
+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 <dennistwilliamson@gmail.com>
+         and Chris F. A. Johnson <chris@cfajohnson.com>
+
+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 <stefano.lattarini@gmail.com>
+
+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}<file
+
+redir.c
+       - redir_varassign: bind_var_to_int already handles array assignments,
+         so don't need to do anything more for things like {a[i]}<file
+       - redir_varvalue: changes to allow references to {a[i]} when
+         performing redirections using valid_array_reference and
+         get_array_value.  Adds functionality requested most recently by
+         <unknown@vmw-les.eng.vmware.com>
+
+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 <mkoskar@gmail.com> and most recently by Jordan Michael
+         Ziegler <jziegler@bnl.gov>
+
+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
+         <pierre.gaston@gmail.com>
+
+                                   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 <ormaaj@gmail.com>
+
+                                   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 <gerd.hofmann.nbg@googlemail.com>
+
+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 <vermaelen.wouter@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                  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 <benoit.vaugon@gmail.com>
+
+                                  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 <rrakus@redhat.com>
+
+configure.ac
+       - HP NonStop (*-nsk*): compile --without-bash-malloc. Change from
+         Joachim Schmitz <jojo@schmitz-digital.de>
+
+                                  9/16
+                                  ----
+subst.c,execute_cmd.c,lib/glob/sm_loop.c,lib/sh/shquote.c
+       - minor code cleanups from Joachim Schmitz <jojo@schmitz-digital.de>
+
+lib/readline/colors.h
+       - workaround for HP NonStop compiler issue with <stdbool.h> from
+         Joachim Schmitz <jojo@schmitz-digital.de>
+
+                                  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 <dualbus@gmail.com>
+
+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 <info@skeena.net>
+
+                                  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 <pclouds@gmail.com>
+
+                                  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 <hans1worst@gmail.com>
+
+                                  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 <baldiniebaldini@gmail.com>
+       - 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 <kaasen@nvg.ntnu.no>
+
+                                  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
+         <zls.sogou@gmail.com>
+
+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 <zls.sogou@gmail.com>
+       - 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 <zls.sogou@gmail.com>
+
+                                  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 <nikolai.kondrashov@redhat.com>
+
+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 <zev@bewilderbeest.net>
+       - 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 <sgf.dma@gmail.com>
+
+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 <idfah@cs.colostate.edu>
+
+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 <idfah@cs.colostate.edu>
+
+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 <vmkari@cc.helsinki.fi>
+
+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 <sam@liddicott.com>
+
+                                  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
+         <idfah@cs.colostate.edu>
+
+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
+         <wb8tyw@qsl.net>
+
+                                  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 <me@timfriske.com>
+
+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 <me@timfriske.com>
+
+                                  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 <me@timfriske.com>
+
+                                  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
+         <arvidjaar@gmail.com>
+
+                                  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 <ulfalizer@gmail.com>
+
+                                  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 <arvidjaar@gmail.com>
+
+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 <vapier@gentoo.org>
+
+                                  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 <raphael.droz@gmail.com>
+
+                                  12/13
+                                  -----
+execute_cmd.c
+       - execute_coproc: handle the command's exit status being inverted
+         (an oversight).  Fixes bug reported by DJ Mills
+         <danielmills1@gmail.com> and Andreas Schwab <schwab@linux-m68k.org>
+
+                                  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
+         <pierre.muller@ics-cnrs.unistra.fr>
+
+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 <dearvoid@gmail.com>
+
+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 <vapier@gentoo.org>
+
+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 <Roman.Fiedler@ait.ac.at>
+
+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 <rschiele@gmail.com>
+
+                                  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
+         <eggert@cs.ucla.edu>
+       - 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 <vituko@gmail.com>, 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 <wb8tyw@qsl.net> 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
+         <raphael.droz@gmail.com>
+       - 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 <nagler@bivio.biz>
+
+                                   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<dualbus@gmail.com>  and Dan Douglas <ormaaj@gmail.com>
+
+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
+         <dualbus@gmail.com>
+
+                                  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
+         <ormaaj@gmail.com>
+
+                                  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
+         <ormaaj@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                  1/15
+                                  ----
+builtins/cd.def
+       - cd_builtin: make sure call to internal_getopt handles -e option.
+         Fixes bug reported by <mashimiao.fnst@cn.fujitsu.com>
+
+                                  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 <wq-doux@cn.fujitsu.com>
+
+                                  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 <ormaaj@gmail.com> [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
+         <ormaaj@gmail.com>
+
+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 <rrakus@redhat.com>
+
+                                  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
+         <konsolebox@gmail.com>; 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
+         <ormaaj@gmail.com>
+
+                                  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 <egmont@gmail.com>
+
+                                  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 <vapier@gentoo.org>
+
+                                  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 <ormaaj@gmail.com>
+
+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 <vapier@gentoo.org>
+
+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 <ttrnka@mail.muni.cz>
+
+                                   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 <vapier@gentoo.org>
+
+                                  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" <dashing@hushmail.com>
+
+
+                                  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 <bruce.korb@gmail.com>
+
+                                  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 <rich.tollerton@ni.com>
+
+                                  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 <p@draigbrady.com> 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 <egmont@gmail.com>
+       - 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 <stephane.chazelas@gmail.com>
+
+                                  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 <signal.h> 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 <gotmynick@gmail.com>
+
+                                   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 <info@skeena.net>
+
+[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 <mattdr@google.com>
+
+                                  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
+         <jonathan.leffler@gmail.com>
+
+                                  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 <dualbus@gmail.com>
+
+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
+         <ormaaj@gmail.com>
+
+                                   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 <watson_ian_a@lilly.com>
+
+                                   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 <schwab@linux-m68k.org>
+
+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 <ormaaj@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                  4/13
+                                  ----
+subst.c
+       - process_substitute: run the EXIT trap before exiting, as other
+         shells seem to.  Fixes problem pointed out by Dan Douglas
+         <ormaaj@gmail.com>
+
+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 <watson_ian_a@lilly.com>
+
+                                  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 <schwab@linux-m68k.org>
+
+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 <rrakus@redhat.com>
+       - 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 <pengyu.ut@gmail.com>
+
+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 <jthomas@exosec.fr>
+
+                                   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 <flaviomotamedeiros@gmail.com>
+
+                                  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 <dan.mick@inktank.com>
+
+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 <ormaaj@gmail.com>
+
+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 <ormaaj@gmail.com>
+
+                                   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 <scx.mail@gmail.com>
+
+                                   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
+         <gsliu.tju@gmail.com>
+
+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 <bash@tlinx.org>
+
+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 <jstcdr@gmail.com>
+
+                                  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 <mjackson220.list@gmail.com>
+
+                                  7/13
+                                  ----
+doc/{bash.1,bashref.texi}
+       - slight change to add a description of `shopt -o' suggested by Bruce
+         Korb <bruce.korb@gmail.com>
+
+                                  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 <chris@chrisdown.name>
+
+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 <geir.hauge@gmail.com>
+
+                                   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 <geir.hauge@gmail.com>
+
+                                   8/3
+                                   ---
+Makefile.in
+       - pcomplete.o: add dependency on $(DEFDIR)/builtext.h. Suggested by
+         Curtis Doty <curtis@greenkey.net>
+
+                                   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
+         <geir.hauge@gmail.com>
+
+                                   8/6
+                                   ---
+doc/{bash.1,bashref.texi},builtins/hash.def,lib/readline/doc/rluser.texi
+       - minor typo changes from Geir Hauge <geir.hauge@gmail.com>
+
+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 <geir.hauge@gmail.com>
+
+                                   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 <geir.hauge@gmail.com>
+
+                                  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 <micfied@gmail.com>
+
+                                  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
+         <jdthood@gmail.com>
+
+                                  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 <schwab@linux-m68k.org>
+
+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 <stephane.chazelas@gmail.com>
+
+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
+         <danielmills1@gmail.com>
+
+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 <mtmiller@ieee.org>
+
+                                  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
+         <pierre.muller@ics-cnrs.unistra.fr>
+
+                                  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 <schwab@linux-m68k.org>
+
+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
+         <cedric.blancher@gmail.com>
+
+                                  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 <bertsutherland@gmail.com>
+
+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 <yong.zhang@windriver.com>
+
+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
+         <michael.haubenwallner@salomon.at>
+
+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 <qwertologe@googlemail.com>
+
+                                  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
+         <joshhurst@gmail.com>
+
+                                  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 <admn.ombres@gmail.com>
+
+                                  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 <john.dawson@gmail.com>
+
+support/shobj-conf
+       - add support for Darwin 13 (Mac OS X 10.9, Mavericks).  Based on a
+         report by Ludwig Schwardt <ludwig.schwardt@gmail.com>
+
+                                  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
+         <nbah@sfr.fr>
+
+                                  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 <peter@cordes.ca>
+
+                                  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 <pankaj.s01@samsung.com>
+
+
+                                  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 <mwesdorp@casema.nl>
+
+                                  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 <pierre.gaston@gmail.com>
+       - 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
+         <pierre.gaston@gmail.com>
+
+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 <martin@kurahaupo.gen.nz>
+
+                                  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 <andrew.martin@gmail.com>
+       - 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 <ben@okopnik.com>
+
+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
+         <jinesh@onelittlehope.com>
+
+Makefile.in
+       - install: make sure to use $(DESTDIR) when installing OTHER_DOCS.
+         Report and fix from Matthias Klose <doko@debian.org>
+
+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 <backuppc-users@whitleymott.net>
+
+                                  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 <parke.nexus@gmail.com>
+
+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 <prusselltechgroup@gmail.com>
+
+                                   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 <thkala@gmail.com>
+
+                                  1/19
+                                  ----
+subst.c
+       - list_dequote_escapes: new function; analogue of list_quote_escapes
+
+pathexp.c
+       - quote_string_for_globbing: fix case where unescaped ^A is last char
+         in string; need to pass it through unaltered instead of turning it
+         into a bare backslash
+       - quote_string_for_globbing: when quoting for regexp matching in [[,
+         don't treat backslash as a quote character; quote the backslash as
+         any other character.  Part of investigation into reports from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                  1/25
+                                  ----
+builtins/gen-helpfiles.c
+       - write_helpfiles: add prototype
+       - make sure to #undef xmalloc/xfree/xrealloc/free if USING_BASH_MALLOC
+         is defined. the code does not use them, and we don't link against
+         xmalloc.o. Report from Linda Walsh <bash@tlinx.org>
+
+Makefile.in
+       - variables.o: add dependency on builtins/builtext.h; helps with
+         parallel builds.  Report from Linda Walsh <bash@tlinx.org>
+
+support/shobj-conf
+       - darwin: combine the stanzas into one that will not require them to
+         be updated on each Mac OS X release.  Report and fix from Max Horn
+         <max@quendi.de>
+
+                                  1/27
+                                  ----
+support/shobj-conf
+       - darwin: changed the install_name embedded into the shared library
+         to contain only the major version number, not the minor one. The
+         idea is that the minor versions should all be API/ABI compatible,
+         and it is better to link automatically with the latest one.  Idea
+         from Max Horn <max@quendi.de>
+
+                                  1/29
+                                  ----
+[bash-4.3-rc2 released]
+
+                                  1/30
+                                  ----
+lib/readline/readline.h
+       - rl_clear_history, rl_free_keymap: add extern declarations.  Report
+         from Hiroo Hayashi <hiroo.hayashi@computer.org>
+
+general.c
+       - include trap.h for any_signals_trapped() prototype
+
+lib/sh/unicode.c
+       - include <stdio.h> for sprintf prototype
+
+                                  1/31
+                                  ----
+execute_cmd.c
+       - execute_simple_command: only posix-mode shells should exit on an
+         assignment failure in the temporary environment preceding a special
+         builtin. This is what the documentation and code comments have
+         always said
+       - execute_simple_command: make sure redirection errors, word expansion
+         errors, and assignment errors to Posix special builtins cause a
+         non-interactive posix mode shell to exit.  Previously the shell
+         would not exit if the failed special builtin was on the LHS of ||
+         or &&
+
+pathexp.c
+       - quote_string_for_globbing: when quoting a regular expression
+         (QGLOB_REGEXP), allow an unquoted backslash to pass through
+         unaltered. Don't use it as a quote character or quote it.  More
+         investigation from 1/24 and report by Mike Frysinger
+         <vapier@gentoo.org>
+       - quote_string_for_globbing: when quoting a regular expression
+         (QGLOB_REGEXP), turn CTLESC CTLESC into CTLESC without adding a
+         backslash to quote it. We should not have to quote it because it is
+         not a character special to EREs. More investigation from 1/24
+
+lib/glob/glob.c
+       - glob_testdir: now takes a second flags argument (currently unused);
+         changed prototype and callers
+
+                                   2/1
+                                   ---
+lib/glob/glob.c
+       - glob_testdir: if flags argument includes GX_ALLDIRS (globstar), use
+         lstat so we skip symlinks when traversing the directory tree.
+         Originally reported by Chris Down <chris@chrisdown.name>
+
+                                   2/2
+                                   ---
+lib/readline/undo.c
+       - rl_do_undo: make sure CUR is non-zero before dereferencing it to
+         check cur->data against rl_undo_list.  Report and fix from
+         Andreas Schwab <schwab@linux-m68k.org>
+
+doc/{bash.1,bashref.texi}
+       - added slight clarifying language to the description of $*,
+         describing what happens when the expansion is not within double
+         quotes
+
+                                   2/4
+                                   ---
+test.c
+       - unary_test: add code to -v case so that it interprets `bare' array
+         references (foo[1]) and returns true if that index has a value
+
+                                   2/5
+                                   ---
+trap.c
+       - restore_default_signal: fix SIGCHLD special case for SIG_TRAPPED flag
+         off but SIG_INPROGRESS mode set and handler IMPOSSIBLE_TRAP_HANDLER;
+         continue with resetting handler in this case. maybe_set_sigchld_trap
+         will check these things before resetting sigchld trap from
+         run_sigchld_trap.  Fixes (apparently long-standing?) problem reported
+         by Alexandru Damian <alexandru.damian@intel.com>
+
+                                   2/6
+                                   ---
+lib/sh/strtrans.c
+       - ansic_quote: fixed a bug when copying a printable character that
+         consumes more than one byte; byte counter was not being incremented.
+         Bug report from jidanni@jidanni.org
+
+                                   2/7
+                                   ---
+input.c
+       - getc_with_restart: if read(2) returns -1/EINTR and interrupt_state or
+         terminating_signal is set (which means QUIT; will longjmp out of this
+         function), make sure the local buffer variables are zeroed out to
+         avoid reading past the end of the buffer on the next call.  Bug report
+         from Dan Jacobson <jidanni@jidanni.org>
+
+                                   2/9
+                                   ---
+bashline.c
+       - command_word_completion_function: if a directory in $PATH contains
+         quote characters, we need to quote them before passing the candidate
+         path to rl_filename_completion_function, which performs dequoting on
+         the pathname it's passed.  Fixes bug reported by Ilyushkin Nikita
+         <ilyushkeane@gmail.com>
+
+                                  2/11
+                                  ----
+parse.y
+       - xparse_dolparen: save and restore shell_eof_token around call to
+         parse_string, intead of just leaving it set to ')'
+       - shell_getc: when -v is set, only print the command line when
+         shell_eof_token is 0, so we don't print it multiple times when
+         recursively entering the parser to parse $(...) commands.  Fixes
+         bug reported by Greg Wooledge <wooledg@eeg.ccf.org>
+
+[changed release status to 4.3-release]
+
+                                  2/13
+                                  ----
+lib/sh/strtrans.c
+       - ansic_quote: handle case where mbrtowc reports that the multibyte
+         sequence is incomplete or invalid.  Fixes bug reported by
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                  2/14
+                                  ----
+variables.c
+       - find_variable_nameref_context: fix a problem that caused the loop
+         to go one context too close to the global context.  In some cases,
+         simple variable assignment would set a variable in the global
+         context instead of a local context.  Bug report from
+         Geir Hauge <geir.hauge@gmail.com>
+
+                                  2/26
+                                  ----
+[bash-4.3 released]
+
+                                  2/27
+                                  ----
+aclocal.m4
+       - broken wcwidth check: fix typo reported by David Michael
+         <fedora.dm0@gmail.com>
+
+                                  2/28
+                                  ----
+support/bashbug.sh
+       - add ${BUGADDR} to error message printed if sending mail fails
+
+trap.c
+       - _run_trap_internal: don't call {save,restore}_pipeline if running
+         DEBUG trap; run_debug_trap calls them itself.  Fixes bug reported
+         by Moe Tunes <moetunes42@gmail.com>
+
+test.c
+       - unary_test: fix 'R' case by using find_variable_noref instead of
+         find_variable
+       - test_unop: add back missing 'R' case.  Fixes bug reported by
+         NBaH <nbah@sfr.fr>
+
+                                   3/2
+                                   ---
+jobs.c
+       - end_job_control: if job control is active, we changed the terminal's
+         process group, so make sure we restore it.  Fixes bug reported by
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                   3/7
+                                   ---
+pcomplete.c
+       - pcomp_curtxt: new variable, holds the original text to be completed
+         as passed to the programmable completion code
+       - pcomp_filename_completion_function: if we are running compgen
+         (presumably in a shell function completion) and performing readline
+         completion, check the word being completed.  If it's not empty, but
+         the original word passed to the programmable completion code is an
+         empty string (""), call a dequoting function if one is available.
+         This compensates for an assumption in bash-completion.  Reported by
+         Albert Shih <Albert.Shih@obspm.fr>
+
+lib/readline/readline.c
+       - _rl_dispatch_subseq: when deciding whether or not to set vi mode's
+         idea of the last command, use whether or not the dispatching keymap
+         is vi_movement_keymap instead of the key sequence length.  The `c',
+         `d', and `y' commands all take motion commands as `arguments' and
+         will produce key sequences longer than 1 character.  The arrow keys
+         will end up dispatching out of a different keymap, so the test will
+         prevent arrow keys from setting the last command (the problem in
+         bash-4.2). Bug report from Daan van Rossum <daan@flash.uchicago.edu>
+
+lib/readline/vi_mode.c
+       - _rl_vi_motion_command: convenience function to test whether a key is
+         a vi-mode motion command
+
+lib/readline/rlprivate.h
+       - _rl_vi_motion_command: extern declaration
+
+parse.y
+       - parse_matched_pair: we should not skip processing single quotes in
+         posix mode if dolbrace_state == DOLBRACE_QUOTE2 (pattern
+         substitution).  Fixes bug reported by David Sines
+         <dave.gma@googlemail.com>
+
+                                  3/10
+                                  ----
+lib/readline/readline.c
+       - _rl_dispatch_callback: treat a return value of -1 as the end of
+         a command dispatch sequence if the current context doesn't
+         indicate that we're reading a multi-key sequence
+         ((cxt->flags & KSEQ_SUBSEQ) == 0).  Turn off the multikey flag
+         and free the context chain in this case.  Fixes one bug reported
+         by Felix Yan <felixonmars@gmail.com> to bug-readline list
+       - _rl_dispatch_callback: treat a return value of > 0 the same as 0
+         and return from the function, since only values < 0 cause us to
+         simulate recursion.  Rest of fix for bug tracked down by
+         Anatol Pomozov <anatol.pomozov@gmail.com>
+
+                                  3/11
+                                  ----
+
+execute_cmd.c
+       - execute_in_subshell: if a longjmp occurs, set result to
+         EXECUTION_FAILURE only if last_command_exit_value == EXECUTION_SUCCESS;
+         use value of last_command_exit_value otherwise.  Fixes cosmetic
+         issue reported by Dennis Lambe Jr. <malsyned@malsyned.net>
+
+doc/bash.1
+       - shell-kill-word and shell-backward-kill-word should be documented
+         as unbound by default.  Report from Oliver Hartley
+         <ohartley@talktalk.net>
+
+trap.c
+       - run_pending_traps: save value of $? before running trap commands in
+         trap_saved_exit_value, like run_exit_trap
+       - _run_trap_internal: save value of $? before running trap commands in
+         trap_saved_exit_value, like run_exit_trap
+
+builtins/common.c
+       - get_exitstat: when running `return' in a trap action, and it is not
+         supplied an argument, use the saved exit status in
+         trap_saved_exit_value.  Fixes Posix problem reported by
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                  3/13
+                                  ----
+lib/sh/shquote.c
+       - sh_contains_quotes: new function, returns true if a given string
+         contains any of the shell quote characters (single quote, double
+         quote, or backslash)
+
+externs.h
+       - sh_contains_quotes: new extern declaration
+
+pcomplete.c
+       - pcomp_filename_completion_function: more changes for the benefit of
+         bash-completion: if the argument is not the same as the original
+         argument passed to the programmable completion code (pcomp_curtxt),
+         and we are being run by compgen as part of a completion, dequote the
+         argument as bash-completion expects.  Fix for the complete-word-
+         with-quoted-special-chars problem with bash-completion
+
+                                  3/17
+                                  ----
+execute_cmd.c
+       - execute_intern_function: when in posix mode, make defining a function
+         with the same name as a special builtin a fatal error only when the
+         shell is not interactive. Interactive shells display an error
+         message and go on.  From a discussion with Doug McIlroy
+         <doug@cs.dartmouth.edu>
+
+                                  3/18
+                                  ----
+arrayfunc.c
+       - assign_compound_array_list: when using expand_assignment_string_to_string
+         to expand the value in a ( [x]=y ) compound assignment, make sure
+         that we convert 0x0 to "" when expanding [x]= so it doesn't appear as
+         if the index is unset.  Fixes bug reported by Geir Hauge
+         <geir.hauge@gmail.com>
+
+builtins/common.c
+       - get_exitstat: update fix of 3/11 to allow the DEBUG trap to use the
+         current value of $? instead of the value it had before the trap
+         action was run.  This is one reason the DEBUG trap exists, and
+         extended debug mode uses it.  Might want to do this only in Posix
+         mode
+
+doc/{bash.1,bashref.texi}
+       - return: add language cribbed from Posix saying what happens when
+         return is run without an argument from a trap, including the DEBUG
+         trap exception
+
+                                  3/19
+                                  ----
+lib/glob/gmisc.c
+       - extglob_pattern_p: make sure ?(patlist) is flagged as an extglob
+         pattern
+
+lib/glob/glob.c
+       - extglob_skipname: rewrite to handle patterns that begin but do not
+         end with an extglob pattern; change test for easy case and loop
+         through patterns accordingly.  Fixes problem with matching filenames
+         with a leading dot reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+       - wextglob_skipname: make analogous changes
+
+                                  3/20
+                                  ----
+Makefile.in
+       - pass -DDEBUG down to builds in readline and history directories
+
+lib/readline/util.c
+       - _rl_trace and related functions are now only compiled in if DEBUG
+         is defined
+
+lib/readline/Makefile.in
+       - substitute @DEBUG@ and pass -DDEBUG, if necessary, to compilation
+         in LOCAL_CFLAGS
+
+                                  3/21
+                                  ----
+parse.y
+       - shell_getc: when checking whether or not to reallocate
+         shell_input_line to add trailing newline, don't try to subtract from
+         shell_input_line_size.  size_t is unsigned, so if its value is less
+         than 3 (like, say, 2), size-3 is a very large number and the string
+         will not be reallocated.  Use len+3 > size instead of len > size-3.
+         Fixes bug reported in
+         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1295467
+
+                                  3/27
+                                  ----
+lib/readline/display.c
+       - _rl_clean_up_for_exit: don't bother to call _rl_move_vert to whatever
+         readline thinks the last displayed line is if it's 0.  Two reasons: a
+         minor optimization, and it protects against unwanted moving if this
+         function is called twice, as it is when ^C is pressed.  Fixes bug
+         reported by Egmont Koblinger <egmont@gmail.com>
+
+                                  3/28
+                                  ----
+bashline.c
+       - invalid_completion: new function, used to identify attempts to
+         complete words that are syntax errors
+       - attempt_shell_completion: if invalid_completion returns true for a
+         word in a command position, punt on all completions.  Fixes cosmetic
+         issue reported by Uwe Storbeck <uwe@ibr.ch>
+       - attempt_shell_completion: add clause so that in_command_position
+         remains set to 1 for an empty word following a command separator like
+         (, &, or |
+
+lib/readline/kill.c
+       - rl_yank, rl_yank_nth_arg_internal: don't return -1 from bindable
+         functions, return 1 instead
+
+lib/readline/text.c
+       - rl_rubout, _rl_rubout_char, rl_delete, rl_change_case,
+         rl_transpose_chars, rl_transpose_words, _rl_set_mark_at_pos,
+         rl_exchange_point_and_mark, _rl_insert_next, _rl_char_search,
+         _rl_char_search_internal:
+         don't return -1 from bindable functions, return 1 instead
+
+lib/readline/vi_mode.c
+       - rl_vi_end_word, rl_vi_rubout, rl_vi_delete, rl_vi_char_search,
+         rl_vi_match, _rl_vi_set_mark, _rl_vi_goto_mark:
+         don't return -1 from bindable functions, return 1 instead
+
+lib/readline/macro.c
+       - rl_start_kbd_macro, rl_end_kbd_macro:
+         don't return -1 from bindable functions, return 1 instead
+
+builtins/setattr.def
+       - set_var_attribute: honor setting of no_invisible_vars when setting
+         att_invisible on a variable
+       - include "../flags.h" for no_invisible_vars
+
+builtins/declare.def
+       - declare_internal: honor setting of no_invisible_vars when setting
+         att_invisible on a variable
+       - include "../flags.h" for no_invisible_vars
+
+Makefile.in,builtins/Makefile.in
+       - make sure declare.o and setattr.o depend on flags.h
+
+execute_cmd.c
+       - decpoint: new function, returns locale's decimal point or `.' default
+       - mkfmt: use decpoint() to get decimal point instead of unconditionally
+         using `.'.  Fixes bug reported by Andrey Tataranovich
+         <tataranovich@gmail.com> in debian bug 741669
+
+                                  4/10
+                                  ----
+lib/readline/rltypedefs.h
+       - add back old Function/VFunction/etc typedefs, since other packages
+         (python, samba) use them. Mark as deprecated using gcc and clang
+         attributes.  Report and fix from Max Horn <max@quendi.de>
+
+                                  4/14
+                                  ----
+jobs.c
+       - run_sigchld_trap: unwind-protect value of this_shell_builtin, since
+         it matters in some cases whether or not we are running `wait' or
+         `eval'.  Fixes bug reported by Eduardo A. Bustamante López
+         <dualbus@gmail.com>
+
+                                  4/18
+                                  ----
+shell.h
+       - sh_parser_state_t: add `need_here_doc' flags member, since
+         xparse_dolparen (via parse_command) sets it to 0
+
+parse.y
+       - gather_here_documents: make sure need_here_doc is > 0, since we
+         don't want to just decrement it forever if it ends up < 0. Partial
+         fix for bug reported by Jared Yanovich <slovichon@gmail.com>
+       - {save,restore}_parser_state: save and restore need_here_doc flag.
+         Rest of fix for bug reported by Jared Yanovich <slovichon@gmail.com>
+
+                                  4/19
+                                  ----
+subst.c
+       - cond_expand_word: since we are not supposed to be performing word
+         splitting here, set expand_no_split_dollar_star to 1 in addition to
+         setting W_NOSPLIT2
+       - expand_word_internal: if we have a case where we have an unquoted
+         $@ but we are in a case where we don't want to split (W_NOSPLIT2),
+         make sure we return a list consisting of a single word with the
+         arguments separated by spaces and don't do word splitting.  Fixes
+         bug reported by Greg Wooledge <wooledg@eeg.ccf.org> from an IRC
+         discussion
+
+builtins/hash.def
+       - print_portable_hash_info: single-quote pathnames and hashed filenames
+         that contain shell metacharacters.  Fixes bug reported by
+         <g1pi@libero.it> in debian bash bug #739853
+
+                                  4/20
+                                  ----
+lib/readline/display.c
+       - When using horizontal scrolling, the redisplay code erases too much
+         of the line containing successful results, so make sure we only
+         erase to the end of the line after making sure we move the cursor
+         to the end.  Fixes bug reported by <Trond.Endrestol@ximalas.info>
+
+                                  4/23
+                                  ----
+{bashhist,bashline}.c
+builtins{bind,help,type}.def
+lib/glob/glob.c, lib/intl/{loadmsgcat,localealias}.c,lib/sh/mktime.c
+       - fixes to memory leaks uncovered by coverity scan
+
+                                  4/24
+                                  ----
+{bashhist,subst,redir,assoc,jobs,array,trap}.c
+lib/intl/l10flist.c
+builtins/complete.def
+       - fixes to memory leaks and other resource usage problems uncovered by
+         coverity scan
+
+redir.c
+       - do_redirection_internal: if dup2 fails (presumably because of a
+         resource limit), close the file descriptor we opened before returning
+         error
+
+                                  4/25
+                                  ----
+config-top.h
+       - DEFAULT_BASHRC: new define with the name of the default shell
+         startup file
+
+bashline.c
+       - bash_directory_completion_matches: don't dequote the directory name.
+         If rl_completion_found_quote is non-zero, readline will dequote the
+         filename itself.  Fixes bug reported by Clark Wang
+         <dearvoid@gmail.com>
+
+                                  4/27
+                                  ----
+subst.c
+       - parameter_brace_expand_rhs: if parameter_brace_find_indir returns
+         NULL or "", or if it returns something that is not a valid identifier,
+         report an error and return &expand_wdesc_error so the error can
+         propagate up.  Fixes bug reported by Andre Holzhey
+         <andre.holzhey@gmx.de>
+
+                                  4/29
+                                  ----
+subst.c
+       - parameter_brace_substring: don't short-circuit right away if the
+         value is NULL but we are looking at the positional parameters.  Part
+         of fix for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
+       - pos_params: if there are no positional parameters, only short-circuit
+         if we are looking for $1 and above.  Rest of fix for bug reported
+         by Pierre Gaston <pierre.gaston@gmail.com>
+
+subst.h
+       - SD_NOPROCSUB: new flag for skip_to_delim, means to not allow any
+         process subsitutions (should not have overloaded SD_NOSKIPCMD)
+
+subst.c
+       - skip_to_delim: honor SD_NOPROCSUB flag
+
+make_cmd.c
+       - make_arith_for_expr: set W_NOPROCSUB flag in the created word
+       - make_arith_for_command: set SD_NOPROCSUB in the flags argument to
+         skip_to_delim so we don't treat <( or >( as a process substitution
+         (we won't evaluate them in eval_arith_for_expr anyway).  Fixes
+         bug reported by Pierre Gaston <pierre.gaston@gmail.com>
+
+                                   5/1
+                                   ---
+lib/glob/gmisc.c
+       - glob_dirscan: new function, takes a pattern and a directory separator
+         argument and advances the pattern to the last occurrence of the
+         separator. Like strrchr, but understands extended glob patterns and
+         uses glob_patscan to skip over them
+
+lib/glob/glob.c
+       - extglob_skipname: if the extended globbing pattern is invalid, don't
+         skip the name
+       - glob_filename: if there is a slash in the pattern to be matched, and
+         extglob is enabled, use glob_dirscan to find the real last occurrence
+         of `/' to avoid being confused by slashes in extglob patterns.  Fix
+         for bug reported by Pierre Gaston <pierre.gaston@gmail.com>
+
+                                   5/6
+                                   ---
+variables.c
+       - make_local_variable: only set the att_invisible attribute if
+         no_invisible_vars isn't set
+       - find_variable_for_assignment: new function, intended to be called by
+         code that eventually wants to assign a value to the variable; will not
+         skip invisible variables; currently identical to find_variable
+       - find_variable_no_invisible: new function, finds the first visible
+         instance of variable with a given name in the variable context chain;
+         eventually will be used to replace find_variable; separate right now
+         for testing
+
+variables.h
+       - find_variable_for_assignment: extern declaration
+       - find_variable_no_invisible: extern declaration
+
+                                   5/7
+                                   ---
+variables.c
+       - make_local_variable: don't clear `invisible' attribute if we are
+         returning an existing local variable at the right context.  Let the
+         upper layers do that. Fixes bug reported by Dan Douglas
+         <ormaaj@gmail.com>
+
+                                   5/8
+                                   ---
+lib/readline/input.c
+       - rl_getc: call RL_CHECK_SIGNALS if a read(2) is interrupted (-1/EINTR)
+         by SIGALRM or SIGVTALRM (placeholder for non-keyboard-generated
+         signals of interest)
+
+builtins/read.def
+       - edit_line: call bashline_set_event_hook and
+         bashline_reset_event_hook around call to readline(), so the right
+         signal handling happens
+       - read_builtin: make sure we add an unwind_protect call to
+         bashline_reset_event_hook.  These changes fix bug reported in
+         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1317476
+
+bashline.c
+       - bash_event_hook: make sure we clean up the readline state by calling
+         rl_cleanup_after_signal if sigalrm_seen is non-zero.  The read builtin
+         sets this when it times out
+
+                                  5/12
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarify language to make it clear that changing attributes of a
+         nameref variable (e.g., export), actually changes the attributes of
+         the referenced variable.  Fixes omission noted by Jeff Haemer
+         <jeffrey.haemer@gmail.com>
+
+arrayfunc.c
+       - bind_array_var_internal: make sure ENTRY no longer has invisible
+         attribute before returning.  Fixes bug reported by Geir Hauge
+         <geir.hauge@gmail.com>
+
+                                  5/22
+                                  ----
+execute_cmd.c
+       - shell_execve: if execve fails and we return 127 or 126, make sure to
+         set last_command_exit_value if a call to file_error or report_error
+         causes the shell to exit.  This ensures that the shell exits with
+         the right value.
+
+                                   6/6
+                                   ---
+shell.c
+       - drop_priv_mode: print an error message on setuid() failure, optionally
+         exit if errno == EAGAIN, as it can be on Linux when RLIMIT_NPROC for
+         the target user is exceeded.
+
+config-top.h
+       - EXIT_ON_SETUID_FAILURE: new settable define, will cause the shell to
+         exit if setuid fails with errno == EAGAIN
+
+                                  6/10
+                                  ----
+parse.y
+       - time_command_acceptable: fix so time is accepted everywhere the
+         grammar is looking for a `compound_list'.  Fixes bug reported by
+         Dale Worley <worley@alum.mit.edu>
+
+                                  6/12
+                                  ----
+subst.c
+       - clear_fifo_list: new function, clears FDs associated with open pipes
+         in current FIFO list without closing the file descriptors.  Can
+         possibly be used when shell_execve fails and the shell jumps back
+         to top_level and we don't want the shell to close the open FIFOs
+         each time through the read-execute loop.  Bug reported by Harald
+         Koenig <koenig@tat.physik.uni-tuebingen.de>
+
+
+                                  6/16
+                                  ----
+builtins/shopt.def
+       - compat42: make sure the `compat42' option sets the correct variable
+         for compatibility level.  Fixes bug reported by Ondrej Oprala
+         <ooprala@redhat.com>
+
+support/bashbug.sh
+       - fix typo when echoing $USAGE.  Report from Shantanu Kulkarni
+         <djbware@shantanukulkarni.org>
+
+execute_cmd.c
+       - shell_execve: before longjmp back to subshell_top_level, clear out the
+         FIFO fd list by calling clear_fifo_list so the FDs (which we inherited
+         from our parent) aren't closed every time through the read-eval loop.
+         Fix for bug reported by Harald Koenig <koenig@tat.physik.uni-tuebingen.de>
+
+                                  6/18
+                                  ----
+subst.c
+       - extract_process_subst: add additional argument: xflags, allow callers to
+         pass flags like extract_command_subst
+       - extract_process_subst: call xparse_dolparen like command substitution
+         to avoid problems when parsing commands constructs with embedded open
+         parens.  Fixes bug reported by Tim Friske <me@timfriske.com>
+
+subst.h
+       - extract_process_subst: modified prototype for extern declaration
+
+                                  6/19
+                                  ----
+execute_cmd.c
+       - execute_pipeline: if running with lastpipe enabled, make sure that we
+         check whether or not the job id is valid using INVALID_JOB before
+         calling job_exit_status. the jobs list can get frozen and unfrozen in
+         the presence of nested pipelines and loops and wait_for can clear a
+         job table entry.  Fixes bug reported by <scorp.dev.null@gmail.com>
+
+jobs.c
+       - freeze_jobs_list: now returns old value of jobs_list_frozen; unused at
+         current time
+
+jobs.h
+       - freeze_jobs_list: change return value
+
+                                  6/20
+                                  ----
+lib/glob/smatch.c
+       - MEMCHR: single-byte and wide character defines (memchr/wmemchr)
+
+lib/glob/sm_loop.c
+       - GMATCH: when the wildcards are the last element of the pattern, make
+         sure they do not match a string containing a `/' if FNM_PATHNAME is
+         set in FLAGS
+       - GMATCH: when recursively calling GMATCH after we see a `*', don't
+         try to consume the rest of the pattern with `*' if FNM_PATHNAME is
+         set in FLAGS, just consume up to the next slash and then see whether
+         or not the rest of the pattern matches.  Fixes bug reported by Ian
+         Kelling <ian@iankelling.org>
+       - GMATCH: when processing `*' in the pattern, after skipping consecutive
+         wildcards, if we hit a literal `/' in the pattern and we're looking
+         for a pathname, skip characters in the string until we find a `/'
+         (no slash means the match fails), and try to match the rest of the
+         pattern against the portion of the string after the next `/'.  Picked
+         up from gnulib/glibc
+
+pathexp.c
+       - split_ignorespec: since split_ignorespec gets globbing patterns,
+         make sure we call skip_to_delim with the SD_GLOB flag so delimiters
+         that occur within bracket expressions don't delimit the pattern.
+         Fixes problem with [[:digit:]] in GLOBIGNORE reported by Ian Kelling
+         <ian@iankelling.org>
+
+unwind_prot.c
+       - unwind_protect_tag_on_stack: new function, returns 1 if unwind-protect
+         frame corresponding to `tag' argument is on unwind-protect stack
+
+unwind_prot.h
+       - unwind_protect_tag_on_stack: extern declaration
+
+                                  6/30
+                                  ----
+lib/readline/misc.c
+       - _rl_revert_all_lines: set entry->data to 0 after assigning it to
+         rl_undo_list to avoid pointer aliasing problems that would result
+         in entry->line being freed by an undo.  The subsequent free would
+         be a double free.  Report and fix from Jared Yanovich
+         <slovichon@gmail.com>
+
+subst.c
+       - command_substitute: other shells do not appear to inherit the -v
+         option when reading and executing command substitutions.  Reported
+         by Ondrej Oprala <ooprala@redhat.com>
+
+                                   7/1
+                                   ---
+config-top.h
+       - CHECKHASH_DEFAULT: new define that supplies the default value for
+         check_hashed_filenames (`checkhash' shopt option); still 0 by default
+
+findcmd.c
+       - check_hashed_filenames: initialize using CHECKHASH_DEFAULT
+
+lib/readline/histexpand.c
+       - history_expand: double quotes can inhibit recognition of the history
+         comment character if history_quotes_inhibit_expansion is non-zero
+
+lib/readline/doc/{history.3,hstech.texi}
+       - history_quotes_inhibit_expansion: expand definition to note that it
+         inhibits scanning for the history comment character as well; correct
+         typo to make it clear that it only works on double-quoted strings
+
+lib/sh/zgetline.c
+       - add new fourth argument: DELIM, allows delimiter to be something
+         other than newline (if DELIM != '\n', UNBUFFERED_READ should be
+         non-zero)
+       - UNBUFFERED_READ is now fifth argument
+       - check character against DELIM rather than strictly newline
+
+externs.h
+       - zgetline: change function prototype for extern declaration
+
+builtins/mapfile.def
+       - mapfile: change calling sequence for zgetline calls
+       - mapfile_builtin: new -d option: DELIM, like in read builtin
+       - mapfile_builtin: pass `delim' to mapfile() as new argument; default
+         to '\n' unless -d option supplied
+       - mapfile: take new DELIM argument, pass to zgetline
+       - mapfile: if DELIM != '\n', set unbuffered_read to 1
+
+doc/{bash.1,bashref.texi}
+       - mapfile: document new `-d DELIM' option
+
+                                   7/5
+                                   ---
+lib/readline/histfile.c
+       - history_truncate_file: if there is an error writing the truncated
+         history list back to the history file, use the same strategy as
+         history_do_write: create a backup file, rename the history file to
+         the backup file, and restore the original history file from the
+         backup file name if the write or the close fails.  Suggestion from
+         Chen Gang <gang.chen.5i5j@gmail.com> to bug-readline
+
+execute_cmd.c
+       - evalnest, evalnest_max: new variables establishing maximum number of
+         recursive `eval' calls; current max is 4096
+       - execute_builtin: unwind-protect value of evalnest around calls to
+         eval builtin. Suggested by Oliver Morais <oliver.morais@gmail.com>
+       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
+         evalnest to 0 in a subshell
+
+builtins/setattr.def
+       - show_name_attributes: show a variable's attributes even if it's
+         invisible (don't show any value since it has none). This means that
+         declare -p var will display VAR's attributes even when var marked
+         as invisible.  Feature request from Peggy Russell
+         <prusselltechgroup@gmail.com>
+       - show_var_attributes: don't print assignment if array or assoc
+         attribute is set but variable marked as invisible
+
+tests/array.right
+       - special note: changed all declare -a output tests because the shell
+         will no longer print out values for invisible array variables. This
+         is a change, but one for correctness:
+
+               declare -a foo='()'
+         and
+               declare -a foo
+         are not equivalent
+
+                                  7/22
+                                  ----
+subst.c
+       - parameter_brace_expand: after calling parameter_brace_expand_indir,
+         turn off the W_ARRAYIND flag in the word it returns, because there
+         is no way for it to return the index that should be used, and the
+         rest of the function assumes that IND is valid if W_ARRAYIND is set.
+         Fixes bug reported by Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
+
+                                   8/2
+                                   ---
+parse.y
+       - read_token_word: if we read a character that will end a command
+         substitution, don't skip over quoted newlines when we read an
+         additional character to figure out whether it's a two-character
+         token. This lets the higher layers deal with quoted newlines after
+         the command substitution. Fixes bug reported by EmanueL Czirai
+         <amanual@riseup.net>
+
+                                  8/11
+                                  ----
+execute_cmd.c
+       - execute_pipeline: check whether lastpipe_jid corresponds to a valid
+         job before calling append_process, for the same reason as fix from
+         6/19.  Fixes bug reported by <lolilolicon@gmail.com>
+
+                                  8/12
+                                  ----
+lib/sh/unicode.c
+       - stub_charset: use strncpy instead of strcpy because we are copying
+         into a local fixed-length buffer.  Fixes vulnerability reported by
+         <romerox.adrian@gmail.com>
+
+execute_cmd.c
+       - execute_pipeline: if we don't call append_process, call
+         wait_for_single_pid to get the status of `lastpid', since that will
+         check the status of already-reaped processes.  Fixes spurious error
+         message about non-existent process from fix of 8/11
+
+                                  8/15
+                                  ----
+jobs.c
+       - running_in_background: new variable, keeps track of whether or not we
+         are running in the background (not perfect yet)
+       - initialize_job_control: even if we are not turning on job control,
+         get the terminal pgrp so we can use it later
+       - {set_job_control,initialize_job_control}: set running_in_background
+         to 1 if terminal pgrp != shell pgrp
+       - {stop_pipeline,make_child,wait_for}: if we are running in the
+         background, don't mess with the terminal's process group; assume that
+         the parent shell will do that.  Fixes bug reported by Greg Wooledge
+         <wooledg@eeg.ccf.org>
+
+shell.c
+       - shell_reinitialize: reset running_in_background back to 0
+
+                                  8/24
+                                  ----
+execute_cmd.c
+       - {execute_connection,execute_command_internal}: make sure that
+         asynchronous commands always set $? to 0 and are not affected by the
+         command's exit status being inverted using `!'.  Fixes bug reported
+         by Vincent Lefevre <vincent@vinc17.net>
+
+lib/readline/display.c
+       - rl_message: call vsnprintf with full msg_bufsiz, since it counts 
+         one fewer than the buffer length passed as an argument.  Bug report
+         and fix from Dylan Cali <calid1984@gmail.com>
+
+                                  8/26
+                                  ----
+builtins/evalstring.c
+       - evalstring: if CURRENT_TOKEN == yacc_EOF, reset it to newline.  This
+         is instead of calling reset_parser(); that might still be needed.
+         Fixes bug with eval and a subsequent statement ending with EOF
+         reported by <jim.avera@gmail.org>
+
+pcomplete.c
+       - filter_stringlist: when extglob is on, a leading ! in the filter
+         pattern should be left alone when it introduces a !(pat) pattern;
+         otherwise it messes up the pattern.  Fixes bug reported by David
+         Korn <dgkorn@gmail.com>
+
+                                  8/27
+                                  ----
+doc/{bash.1,bashref.texi}
+       - clarify the behavior of bash when given the -c option, since $0 is
+         technically not a positional parameter.  Bug reported by Stephane
+         Chazelas <stephane.chazelas@gmail.com>
+
+                                  8/28
+                                  ----
+lib/readline/history.c
+       - add_history: use history_max_entries (if history is stifled) or
+         DEFAULT_HISTORY_INITIAL_SIZE if not (new define, defaults to 502)
+         to size the initial allocation of the history array.  Assumption
+         is that this will reduce the number of allocations
+
+                                  8/29
+                                  ----
+execute_command.c:
+       - sourcenest, sourcenest_max: new variables used to track level of
+         sourced files and (maybe) one day catch infinite source recursion
+       - execute_builtin: if current source level exceeds sourcenest_max,
+         trigger an error and jump back to the top level
+       - {initialize_subshell,execute_subshell_builtin_or_function}: reset
+         sourcenest to 0 in a subshell
+
+                                   9/2
+                                   ---
+variables.c
+       - bind_variable: if a nameref expands to an array reference, make
+         sure that assign_array_element gets called (maybe even
+         recursively) instead of bind_variable_internal, so invalid variable
+         names (like arr[0]) don't get created.  Fixes bug reported by
+         <lolilolicon@gmail.com>
+
+                                   9/3
+                                   ---
+execute_cmd.c
+       - evalnest_max,sourcenest_max: initialize from EVALNEST_MAX and
+         SOURCENEST_MAX, respectively.  Feature suggested by
+         <bogun.dmitriy@gmail.com>
+
+config-top.h
+       - define EVALNEST_MAX and SOURCENEST_MAX to 0
+
+                                   9/6
+                                   ---
+bashline.c
+       - find_cmd_start: fix to (crudely) deal with >| token; even though
+         skip_to_delim finds `|' as a delimiter, we call it again and use
+         what the second call finds.  Fixes bug reported by Dan Jacobson
+         <jidanni@jidanni.org>
+
+findcmd.c
+       - find_in_path_element: if in posix mode, do not expand a literal
+         tilde in a $PATH element
+
+doc/bashref.texi
+       - add change to tilde expansion in $PATH elements to posix mode
+         description
+
+builtins/common.h
+       - ISHELP: new define for builtins that do their own option parsing
+         and don't use internal_getopt(); checks whether argument is --help
+       - CHECK_HELPOPT: convenience define to help builtins that do their
+         own option parsing to check for --help with one line of code
+       - CASE_HELPOPT: convenience define to help builtins that use
+         internal_getopt() check for --help with one line of code
+
+builtins/help.def
+       - builtin_help: new function, prints out --help output for current
+         builtin
+
+builtins/{kill,let,pushd}.def
+       - add CHECK_HELPOPT to builtins that use ISOPTION; call builtin_help
+         and return EX_USAGE (kill/let/pushd/popd/dirs)
+
+builtins/{caller,fg_bg}.def
+       - use CHECK_HELPOPT to recognize --help, since these builtins perform
+         checks that can cause them to return before calling no_options
+         (caller/fg/bg)
+
+builtins/{exit,return}.def
+       - use CHECK_HELPOPT to recognize --help before calling get_exitstat()
+         (return/exit/logout)
+
+builtins/{break,shift}.def
+       - use CHECK_HELPOPT to recognize --help before any other checks
+         (break/continue/shift)
+
+builtins/bashgetopt.h
+       - GETOPT_EOF: convenience define
+       - GETOPT_HELP: new define, to indicate internal_getopt saw --help
+
+builtins/bashgetopt.c
+       - internal_getopt: return GETOPT_HELP for --help
+
+builtins/common.c
+       - no_options: recognize --help, call builtin_help and return 2
+         (builtin/eval/source/./times)
+
+builtins/command.def
+       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
+         (command)
+
+builtins/{colon,echo,test}.def
+       - do not recognize --help (:/true/false/echo/test)
+
+                                   9/8
+                                   ---
+sig.c
+       - termsig_sighandler: if readline is active now, set the bashline event
+         hook. Old code just set it for interactive shells.  Part of fix for
+         bug reported by <mickael9@gmail.com>
+
+bashline.c
+       - bash_event_hook: call rl_cleanup_after_signal if terminating_signal
+         is non-zero, since check_signals_and_traps() will cause the shell to
+         exit if it is and we want to clean up the readline state first.  Rest
+         of fix for bug reported by <mickael9@gmail.com>
+
+                                   9/9
+                                   ---
+jobs.c
+       - waitchld: when running the wait builtin in posix mode, with a trap set
+         on SIGCHLD, use queue_sigchld_trap instead of trap_handler (SIGCHLD),
+         otherwise you will lose SIGCHLDs when children_exited > 1.  Fixes bug
+         reported by <crispusfairbairn@gmail.com>
+
+builtins/read.def
+       - read_builtin: if we are changing the tty settings, call
+         initialize_terminating_signals so we have a chance to catch all
+         terminating signals and potentially clean up the terminal before
+         exiting
+       - read_builtin: tty_modified: new variable, set to 1 if we change the
+         terminal attributes and have to call ttyrestore() to restore them
+       - if one of the `reads' returns -1/EINTR due to a terminating signal,
+         and we have modified the terminal, call ttyrestore before calling
+         CHECK_TERMSIG
+       - ttyrestore: set tty_modified to 0 when called
+
+                                  9/10
+                                  ----
+builtins/read.def
+       - termsave: now global to file so other functions can use it
+       - read_tty_cleanup: if tty_modified is non-zero, call ttycleanup to
+         restore old terminal settings and turn off tty_modified
+
+sig.c
+       - termsig_handler: call read_tty_cleanup if currently executing read
+         builtin; it does the right thing.  Final piece of fix for bug reported
+         by Jan Rome <jan.rome@gmail.com>
+
+                                  9/11
+                                  ----
+general.c
+       - printable_filename: general function to return a printable
+         representation of a string (presumed to be a filename)
+
+general.h
+       - extern declaration for printable_filename
+
+execute_cmd.c
+       - execute_disk_command: use printable_filename
+
+builtins/{bind,cd,enable,hash,source}.def
+       - use printable_filename as appropriate when printing error messages.
+         From a suggestion by Vincent Lefevre <vincent@vinc17.net>
+
+builtins/bind.def
+       - use CASE_HELPOPT() to handle --help after calling internal_getopt()
+         (bind)
+
+                                  9/12
+                                  ----
+builtins/common.h
+       - SEVAL_FUNCDEF: new flag for parse_and_execute; it means that we only
+         accept a single function definition command, as when we are importing
+         functions from the environment
+       - SEVAL_ONECMD: new flag for parse_and_execute; for future use
+
+builtins/evalstring.c
+       - parse_and_execute: if the SEVAL_FUNCDEF flag is set, disallow anything
+         but a function definition command
+
+variables.c
+       - initialize_shell_variables: don't allow functions with invalid names
+         to be imported from the environment, even though we still allow them
+         to be defined
+       - initialize_shell_variables: when importing function definitions from
+         the environment, call parse_and_execute with the SEVAL_FUNCDEF flag
+         to force the command to be just a function definition
+
+subst.c
+       - param_expand: when expanding a $name variable expansion, make sure that
+         the variable is visible and set before following the nameref chain
+       - param_expand: when expanding a $name variable expansion and following the
+         nameref chain, make sure the resulting variable is visible and set
+         before using it
+
+                                  9/13
+                                  ----
+variables.c
+       - initialize_shell_variables: when importing function definitions from
+         environment, use SEVAL_ONECMD flag for parse_and_execute.  Part of
+         CVE-2014-6271
+
+builtins/evalstring.c
+       - parse_and_execute: if SEVAL_ONECMD flag set, return immediately after
+         calling execute_command_internal.  Final piece for fix for bug
+         reported by Stephane Chazelas <stephane.chazelas@gmail.com>.  Part of
+         CVE-2014-6271
+
+                                  9/24
+                                  ----
+parse.y
+       - reset_parser: reset eol_ungetc_lookahead to 0 here, since we don't want
+         shell_getc returning it on the next call.  Fixes problem reported by
+         Tavis Ormandy <taviso@cmpxchg8b.com> and Michal Zalewski
+         <lcamtuf@coredump.cx>.  Potentially part of CVE-2014-6271; fix for
+         CVE-2014-7169
+
+                                  9/25
+                                  ----
+parse.y
+       - push_heredoc: new function, pushes a here-doc redirection onto
+         redir_stack handling overflow of redir_stack. Exits on overflow.
+         Original fix from Florian Weimer <fweimer@redhat.com>.  Fix for
+         CVE-2014-7186
+       - change straight assignments to redir_stack to call push_redir
+       - add one to size of word_lineno stack to avoid off-by-one error
+         below in read_token_word. Overflow just results in line numbers
+         being wrong.  Fix for CVE-2014-7187
+
+                                  9/27
+                                  ----
+{execute_cmd,trap}.c
+       - changes to make minimal-config builds work again, mostly missing
+         #ifdefs for optional features
+
+builtins/common.c
+       - builtin_help: dummy version to be included if HELP_BUILTIN not
+         defined, for minimal-config builds
+
+variables.c
+       - initialize_shell_variables: incorporated patches from Florian
+         Weimer <fweimer@redhat.com> to change the strings bash looks
+         for when importing shell functions from the environment.  It
+         adds a prefix (BASH_FUNC_) and a suffix (%%) to the name to
+         mark it as having been created by bash as an exported function.
+         Fix for remote attacks part of CVE-2014-6271 and CVE-2014-7169
+       - mk_env_string: takes new argument, indicating whether we are
+         constructing a function
+       - mk_env_string: encodes function names as described above, so
+         initialize_shell_variables can find them
+
+                                  9/28
+                                  ----
+copy_cmd.c
+       - copy_redirects: before calling savestring on here_doc_eof, make
+         sure it's not NULL (it could have been the result of a here
+         document delimited by EOF or EOS).  Fixes bug reported by
+         Michal Zalewski <lcamtuf@coredump.cx>.  Fix for CVE-2014-6277
+
+make_cmd.c
+       - make_redirection: initialize here_doc_eof member to NULL.  Rest of
+         fix for CVE-2014-6277
+
+                                  9/29
+                                  ----
+parse.y
+       - current_input_line_state: return a sh_input_line_state_t containing
+         the current shell_input_line and its index and size variables
+
+shell.h
+       - current_input_line_state: extern declaration
+
+builtins/evalstring.c
+       - parse_and_execute: call reset_parser() before returning if
+         SEVAL_ONECMD set.  Fixes bug reported by Michal Zalewski
+         <lcamtuf@coredump.cx> and designated CVE-2014-6278
+       - parse_and_execute: if we parse a function definition when
+         SEVAL_FUNCDEF is set, but don't consume the entire passed string,
+         throw an error, reset the parser, and return.  Part of fix for
+         CVE-2014-6278
+       - parse_and_execute: if parsing the shell function definition when
+         SEVAL_FUNCDEF is set transforms the function name (e.g., if it
+         begins with a newline or begins or ends with whitespace), throw
+         an error, reset the parser, and return.  Fixes bug reported by
+         Eric Kobrin <ekobrin@akamai.com>
+
+                                  10/2
+                                  ----
+jobs.c
+       - bgp_prune: don't do anything if bgpids.npid == 0 or
+         bgpids.list == NULL.  This can happen if something gets run before
+         the job control framework is initialized.  Bug report from
+         <mancha1@zoho.com>
+
+                                  10/3
+                                  ----
+parse.y
+       - xparse_dolparen: don't set token_to_read to newline after calling
+         parse_string() and cleaning up when the shell is not interactive.  This
+         makes the parser think it's ok to read new commands even if it's not in
+         a state where that should be possible.  Underlying fix for bug reported
+         by Michal Zalewski <lcamtuf@coredump.cx> and designated CVE-6278
+       - parser_remaining_input: new function, returns the portion of
+         shell_input_line that hasn't yet been read
+       - current_input_line_state: removed
+
+shell.h
+       - parser_remaining_input: extern declaration
+       - current_input_line_state: removed
+
+builtins/evalstring.c
+       - parse_and_execute: change code that checks whether parse_command has
+         consumed the entire passed string when SEVAL_FUNCDEF is used to use
+         parser_remaining_input instead of messing around with (new)
+         current_input_line_state.  Part of fix for CVE-2014-6278
+
+variables.c
+       - initialize_shell_variables: if we don't call parse_and_execute, free
+         the temporary string, since parse_and_execute won't.  Report and fix
+         from Eric Kobrin <ekobrin@akamai.com>
+
+                                  10/4
+                                  ----
+print_cmd.c
+       - print_function_def: when in posix mode, print shell function
+         definitions as posix specifies them, without the leading
+         `function' keyword
+
+general.c
+       - exportable_function_name: return 1 if the passed string can be
+         added to the environment as an exported function name.  Currently
+         prohibits function names containing  `/' and `=' from being
+         exported
+
+general.h
+       - exportable_function_name: extern declaration
+
+builtins/setattr.def
+       - set_or_show_attributes: if exporting a function with export -f,
+         call exportable_function_name to determine whether the function
+         should be exported; don't export function if it returns 0
+
+                                  10/7
+                                  ----
+builtins/setattr.def
+       - set_or_show_attributes: don't show identifiers that are invisible
+         and imported from the environment, since that combination of
+         attributes means that the imported variable is not a valid shell
+         identifier.  Report from Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+
+                                  10/8
+                                  ----
+shell.c
+       - shell_initialize: set new variable should_be_restricted, which
+         says whether or not the shell will be a restricted one based on the
+         shell name; use in calls to initialize_shell_variables (to inhibit
+         importing shell functions) and initialize_shell_options (to inhibit
+         parsing $SHELLOPTS) and initialize_bashopts (to inhibit parsing
+         $BASHOPTS).  Report from <paulfm@umn.edu>
+
+                                  10/12
+                                  -----
+execute_cmd.c
+       - execute_function: unwind-protect loop_level, set loop_level to 0
+         when entering a function so break and continue in functions don't
+         break loops running outside of the function. Fix picked up from
+         dash via Herbert Xu <herbert@gnodor.apana.org.au>
+
+                                  10/13
+                                  -----
+doc/Makefile.in
+       - bashref.pdf: create using texi2dvi --pdf rather than postprocessing
+         the dvi file, so we have PDF bookmarks and links.  Fix from
+         Siep Kroonenberg <siepo@cybercomm.nl>
+
+                                  10/14
+                                  -----
+subst.h
+       - Q_ARITH: new quoting flag. Semantics are per Posix's spec for
+         arithmetic expansion: act as if string is quoted, but don't treat
+         double quotes specially (in this case, they will be removed by quote
+         removal)
+       - Q_ARRAYSUB: new quoting flag, indicates we are expanding an indexed
+         array subscript
+
+subst.c
+       - expand_arith_string: if we are not expanding the string, but we saw
+         a quote with Q_ARITH specified as one of quoting flags, perform
+         quote removal even if Q_DOUBLE_QUOTES is specified
+       - param_expand: change calls to expand_arith_string for $[ and $((
+         cases to specify Q_ARITH.  Now $(( "$x" )) and $(( "x" )) work if x
+         has a value that evaluates to a valid number, as Posix specifies
+       - expand_word_internal: add test for quoted&Q_ARITH to the tilde case,
+         so we continue to perform tilde expansion in arithmetic contexts
+       - expand_word_internal: if quoted&Q_ARITH, continue processing when we
+         see a `"', acting as if the double quote isn't present (already
+         Q_DOUBLE_QUOTED)
+
+arrayfunc.c
+       - array_expand_index: pass Q_DOUBLE_QUOTED|Q_ARITH|Q_ARRAYSUB as quoted
+         argument in call to expand_arith_string.  This inhibits word
+         splitting (Q_DOUBLE_QUOTED) while discarding double quotes (Q_ARITH),
+         identical to the quote flags passed while expanding $(( )) and $[ ].
+         Q_ARRAYSUB reserved for future use.  Fixes problem reported by
+         Stephane Chazelas <stephane.chazelas@gmail.com>
+
+                                  10/16
+                                  -----
+subst.c
+       - parameter_brace_expand_word: if the PF_ASSIGNRHS flag is set and we
+         are expanding what looks like an array subscripted with @ or *,
+         make sure the variable we're expanding is actually an array before
+         we add Q_DOUBLE_QUOTES to the flags.  If we don't, things like
+         scalar[@] will remain quoted.  Fixes ubuntu bug 1381567
+         https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1381567
+
+                                  10/17
+                                  -----
+{jobs,nojobs}.c
+       - get_original_tty_job_signals: get original signal dispostions for
+         SIGTSTP, SIGTTIN, SIGTTOU before we start manipulating them in
+         make_child
+       - default_tty_job_signals: make sure we set SIGTSTP, SIGTTIN, or
+         SIGTTOU to SIG_IGN if they were ignored at shell startup instead of
+         unconditionally setting them to SIG_DFL.  Fixes bug reported by
+         idallen@idallen.ca
+
+jobs.h
+       - get_original_tty_job_signals: extern declaration
+
+trap.c
+       - initialize_traps: add call to get_original_tty_job_signals
+
+                                  10/22
+                                  -----
+subst.c
+       - expand_string_for_rhs: when expanding in this context (rhs of a word
+         expansion or pattern removal), we don't perform word splitting, so
+         we don't want to split $* if IFS is empty.  Fixes bug reported by
+         Stephane Chazelas <stephane.chazelas@gmail.com>
+
+                                  10/23
+                                  -----
+subst.c
+       - param_expand: when expanding $* in a pattern context where the
+         expansion is quoted (Q_PATQUOTE), don't quote the expansion --
+         the outer quotes don't make the characters in the expansion of
+         $* special.  Posix interp 221.  Reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+
+                                  10/28
+                                  -----
+lib/readline/bind.c
+       - enable-bracketed-paste: new bindable variable, enables support for
+         a terminal's `bracketed paste mode'.  Code contributed by
+         Daniel Colascione <dancol@dancol.org>
+
+doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
+       - enable-bracketed-paste: add description
+
+lib/readline/{readline.c,rlprivate.h}
+       - _rl_enable_bracketed_paste: declarations
+       - #defines for use by bracketed paste implementation
+
+lib/readline/rltty.c
+       - rl_prep_terminal: send BRACK_PASTE_INIT string to terminal if we
+         are supposed to enable bracketed-paste mode; change terminal_prepped
+         to indicate we sent that string and need to clean up
+       - rl_deprep_terminal: if terminal_prepped indicates we sent the
+         bracketed-paste mode init string to the terminal, send the cleanup
+         string before restoring the terminal modes
+
+lib/readline/kill.c
+       - rl_bracketed_paste_begin: function to read bracketed paste until
+         BRACK_PASTE_SUFF; discard the suffix, and insert the rest of the
+         paste as a single (undoable) object.  Bound to BRACK_PASTE_PREF
+
+lib/readline/funmap.c
+       - bracketed-paste-begin: new bindable command, executes
+         rl_bracketed_paste_begin
+
+lib/readline/readline.c
+       - bind_bracketed_paste_prefix: new function, sets up to recognize
+         the bracketed paste prefix sequence (BRACK_PASTE_PREF) in emacs
+         keymap and vi insertion keymap
+       - readline_initialize_everything: call bind_bracketed_paste_prefix
+
+                                  11/1
+                                  ----
+builtins/ulimit.def
+       - RLIMIT_POSIXLOCKS: now synonym for RLIMIT_LOCKS
+       - -k: new option: RLIMIT_KQUEUES, max kqueues allocated for this
+         process
+       - -P: new option: RLIMIT_NPTS, max number of pseudoterminals available
+         to this process
+
+doc/{bash.1,bashref.texi}
+       - document `ulimit -k' option
+       - document `ulimit -P' option
+
+parse.y
+       - `timespec list_terminator' production: if the list terminator is `;'
+         set last_read_token to `;' to allow things like `time ; command' to
+         time null commands and not throw a syntax error.  Patch from
+         Piotr Grzybowski <narsil.pl@gmail.com>
+       - `BANG list_terminator' production: do the same thing
+
+variables.c
+       - sv_optind: use find_shell_variable and get_variable_value so we can
+         have the variable's context in the case we need to do something
+         when we are restoring a previous variable context's value
+
+builtins/getopt.h
+       - sh_getopt_state_t: struct to save sh_getopt's internal state so we
+         can restore it around function calls in the event that we have a
+         local copy of OPTIND
+
+builtins/getopt.[ch]
+       - sh_getopt_{save,restore}_istate: new functions to save and restore
+         getopt's internal state
+       - sh_getopt_{alloc,dispose}_istate: new functions to allocate and
+         deallocate sh_getopt_istate_t objects
+
+execute_cmd.c
+       - maybe_restore_getopt_state: restore sh_getopt state after executing
+         function body iff the funtion declared a local copy of OPTIND
+       - execute_function: save sh_getopt state before executing function body
+       - execute_function: note in getopt_state->flags whether or not the
+         function declared a local copy of OPTIND; used by
+         maybe_restore_getopt_state
+       - execute_function: maybe restore sh_getopt state before returning via
+         call to maybe_restore_getopt_state.  Fixes bugs with getopts and
+         state between calls reported in 2011 by Bernd Eggink
+         <monoped@sudrala.de> and in 2014 by Oyvind Hvidsten
+         <oyvind.hvidsten@dampir.no>
+
+configure.ac
+       - enable-function-import: new option, controls whether function imports
+         are included.  Enabled by default.  Patch from David Galos
+         <davegalos@google.com>
+
+config.h.in
+       - FUNCTION_IMPORT: define controlled by enable-function-import above
+
+variables.c
+       - initialize_shell_variables: include code to import function
+         definitions from the environment if FUNCTION_IMPORT is defined
+
+doc/bashref.texi
+       - --enable_function-import: document new configuration option
+
+                                  11/5
+                                  ----
+lib/readline/history.c
+       - history_lines_read_from_file: new variable, set by read_history and
+         read_history_range to the actual number of lines read from the
+         history file.  The value is valid immediately after a call to one
+         of those functions
+       - history_lines_written_to_file: new variable, set by write_history,
+         history_do_write, and history_truncate_file to the actual number of
+         lines written to the history file.  The value is valid immediately
+         after a call to one of those functions
+
+variables.c
+       - sv_histsize: set history_lines_in_file after history_truncate_file()
+         only if hmax < history_lines_in_file (lines we've already read); a
+         cosmetic change only
+
+bashhist.c
+       - load_history: set history_lines_in_file after read_history() from
+         history_lines_read_from_file, since read_history reads all of the
+         lines from the history file even if it's more than $HISTSIZE
+       - maybe_save_shell_history: after calling write_history(), set
+         history_lines_in_file to history_lines_written_to_file, since we
+         can assume that we read everyhing we just wrote
+
+builtins/history.def
+       - history_builtin: after calling read_history (history -r), set the
+         new value of history_lines_in_file, for the same reason as above
+       - history_builtin: after calling read_history_range (history -n), set
+         history_lines_in_file from history_lines_read_from_file
+
+                                  11/6
+                                  ----
+lib/readline/histfile.c
+       - history_truncate_file: since we move the old file to a backup copy
+         before truncating, make sure the new file is owned by the same uid
+         as the old
+       - history_do_write: use chown in the same way as history_truncate_file
+
+                                  11/12
+                                  -----
+lib/readline/display.c
+       - expand_prompt: takes a new `flags' argument; only one flag defined
+         so far: PMT_MULTILINE
+       - expand_prompt: changed all callers to add new flags argument
+       - rl_expand_prompt, redraw_prompt: make sure to set PMT_MULTILINE in
+         FLAGS argument to expand_prompt if expanding parts of a prompt
+         containing embedded newlines
+       - expand_prompt: only add mode char to last line of a prompt with
+         embedded newlines, so mode indicator doesn't get lost and gets
+         updated properly.  Fixes problem reported by Renlin Li
+         <lirenlin@gmail.com>
+
+                                  11/13
+                                  -----
+
+lib/readline/display.c
+       - prompt_modestr: changed prompt_modechar to return a string denoting
+         the editing mode; default strings for emacs and both vi modes are
+         #defines in this file.  prompt_modestr takes an argument in which
+         it returns the length of the mode string
+       - expand_prompt: if expanding mode strings in the prompt, get the
+         mode string to use and add it at the beginning of the prompt string,
+         before expanding it.  This will allow future work allowing the mode
+         string to contain invisible characters
+
+                                  11/15
+                                  -----
+lib/readline/rlprivate.h
+       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: extern declarations for
+         variables to hold current values of user-settable mode strings;
+         variables to hold lengths 
+
+lib/readline/rlconf.h
+       - defines for default values of the mode strings for each editing mode
+         and keymap
+
+lib/readline/display.c
+       - _rl_{emacs,vi_cmd,vi_ins}_mode_str: new variables to hold values of
+         user-settable mode strings
+       - _rl_{emacs,vi_cmd,vi_ins}_modestr_len: new variables to hold lengths
+         of corresponding mode string variables
+       - prompt_modestr: return appropriate user-settable mode string
+         variables
+
+lib/readline/bind.c
+       - {emacs,vi-ins,vi-cmd}-mode-string: new user-settable mode string
+         variables
+       - sv_{emacs,viins,vicmd}_modestr: variable handling functions for user-
+         settable mode string variables. Non-null values are run through
+         rl_translate_keyseq so users can include invisible character
+         sequences in the mode strings; null values restore the default
+       - _rl_get_string_variable_value: handle values for new user-settable
+         mode string variables. Original code contributed by Dylan Cali
+         <calid1984@gmail.com>
+
+lib/readline/doc/rluser.texi
+       - {emacs,vi-ins,vi-cmd}-mode-string: document, including the fact that
+         you can use \1 and \2 to bracket sequences of non-printing
+         characters
+
+                                  11/16
+                                  -----
+lib/readline/history.c
+       - add_history: replace loop that copies history list down one item
+         with call to memmove to take advantage of whatever efficiencies
+         libc can offer.  Won't be any slower than current loop
+
+lib/readline/display.c
+       - rl_redraw_prompt_last_line: new function, calls redraw_prompt if
+         the prompt contains multiple lines; calls rl_forced_update_display
+         if not
+
+lib/readline/readline.h
+       - rl_redraw_prompt_last_line: extern declaration, undocumented in
+         texinfo manual until I get it a little more work
+
+bashline.c
+       - bash_execute_unix_command: instead of unconditionally calling
+         rl_forced_update_display, call rl_redraw_prompt_last_line if we
+         cleared the last line before executing the command.  This keeps
+         commands that don't display any other output but just manipulate
+         the contents of the line buffer from redisplaying the prompt lines
+         before the last newline multiple times.  Fixes bug reported by
+         Jesper Nygards <jesper.nygards@gmail.com> and Rob Foehl
+         <rwf@loonybin.net>.  This means that commands that display output
+         will *only* display the final line of the prompt
+       - bash_execute_unix_command: if the command returns 124, we redraw
+         the line unconditionally, including all lines of the prompt
+
+                                  11/18
+                                  -----
+builtins/mapfile.def
+       - mapfile_builtin: don't allow a valid array reference through to
+         mapfile(), since it will just create a shell variable with that name.
+         Bug and fix from Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                  11/19
+                                  -----
+lib/readline/complete.c
+       - _rl_colored_completion_prefix: new variable, if non-zero, and color
+         support is compiled in, and the $LS_COLORS variable exists and
+         contains color definitions, display any common prefix of a set of
+         completions in blue when displaying all the possible completions.
+         Doesn't work with menu-complete, which inserts possible completions
+         inline
+       - colored_prefix_start(), colored_prefix_end(): new functions, used to
+         bracket colored completion prefixes
+       - fnprint: if prefix_bytes is non-zero, and _rl_colored_completion_prefix
+         is > 0, display the first PREFIX_BYTES bytes of the word bracketed
+         by calls to colored_prefix_start and colored_prefix_end
+       - print_filename: if _rl_colored_completion_prefix is > 0, compute the
+         length in bytes of the common prefix and pass that to fnprint
+
+lib/readline/readline.c
+       - readline_initialize_everything: initialize the colors from $LS_COLORS
+         if _rl_colored_completion_prefix is non-zero
+
+lib/readline/colors.c
+       - _rl_print_prefix_color: new function, changes text color to that
+         defined for the common prefix of a set of possible completions
+         (currently cyan, same as directories); currently uses C_PREFIX,
+         defined in colors.h as C_DIR
+
+lib/readline/colors.h
+       - _rl_print_prefix_color: new extern declaration
+
+lib/readline/bind.c
+       - colored-completion-prefix: new bindable variable, if set, common
+         prefix of a set of possible completions is displayed in color.
+         Feature requested by several, most recently by Richard Neill
+         <rn214@richardneill.org> (in a slightly different form) and
+         Duy Nguyen <pclouds@gmail.com>
+
+                                  11/20
+                                  -----
+builtins/printf.def
+       - printf_builtin: allow null (empty) format strings supplied with
+         -v var to set `var' to the empty string.  That is, printf -v var ""
+         is now the same as var="".  Change suggested by Mike Frysinger
+         <vapier@gentoo.org>
+
+pathexp.h
+       - FNMATCH_NOCASEGLOB: macro to decide whether or not to pass
+         FNM_CASEFOLD flag to strmatch depending on whether glob_ignore_case
+         is set; analogout to FNMATCH_IGNCASE
+
+pathexp.c
+       - glob_name_is_acceptable: use FNMATCH_NOCASEMATCH to determine flags
+         passed to strmatch; if nocaseglob is used to generate glob matches,
+         it should be used to generate ignored matches
+
+                                  11/21
+                                  -----
+pcomplete.c
+       - filter_stringlist: the call to strmatch now honors the setting of
+         nocasematch.  Feature request from Ville Skytta <ville.skytta@iki.fi>
+         back in 2010
+
+doc/bash.1,lib/readline/doc/rluser.texi
+       - complete -X: document that filtering the list of possible completions
+         honors the nocasematch option when performing matching
+
+lib/glob/gmisc.c
+       - include chartypes.h and strmatch.h for new defines
+       - match_pattern_{wchar,char}: now take new third FLAGS argument, flags
+         have same meanings as strmatch(); intent is to handle case
+         insensitive comparisons under same conditions as strmatch
+       - FOLD: imported case-folding define from sm_loop.c; wide and single-
+         byte character versions
+       - match_pattern_{wchar,char}: use FOLD when comparing characters to
+         honor FNM_CASEFOLD if set in FLAGS argument
+
+externs.h
+       - match_pattern_{wchar,char}: updated extern declarations
+
+subst.c
+       - match_{upattern,wpattern}: update strmatch/wcsmatch calls to include
+         FNMATCH_IGNCASE in flags argument
+       - match_{upattern,wpattern}: update match_pattern_{char,wchar} calls
+         to include FNMATCH_IGNCASE in flags argument (consistent with calls
+         to strmatch).  This makes pattern substitution word expansion honor
+         nocasematch shell option.  Feature requested by Davide Baldini
+         <baldiniebaldini@gmail.com>
+       - match_wpattern: make sure to fold case if necessary when doing simple
+         matching
+
+doc/{bash.1,bashref.texi}
+       - pattern substitution: updated description to include honoring setting
+         of nocasematch when performing matching
+
+subst.c
+       - expand_word_internal: optimize handling of "$@" idiom by calling
+         list_rest_of_args() and quote_list() directly at the top of the
+         function instead of going through normal code path
+       - cached_quoted_dollar_at: WORD_LIST of quoted positional parameters,
+         used by same code above that optimizes "$@"; if non-null we just
+         return a copy of the list; if null, we save a copy of the list we
+         create
+       - invalidate_cached_quoted_dollar_at: convenience function to allow
+         other parts of the shell (e.g., remember_args()) to destroy the
+         cached list of quoted positional parameter when the positional
+         parameters change
+
+builtins/common.c
+       - remember_args: call invalidate_cached_quoted_dollar_at()
+
+builtins/shift.def
+       - shift_builtin: call invalidate_cached_quoted_dollar_at after modifying
+         dollar_vars[]
+
+builtins/source.def
+       - maybe_pop_dollar_vars: call invalidate_cached_quoted_dollar_at just
+         to be safe
+
+                                  11/23
+                                  -----
+builtins/evalfile.c
+       - _evalfile: return -1 if errno == ENOENT and the flags don't include
+         FEVAL_ENOENTOK.  If we print an error message we should return an
+         error
+       - force_execute_file: new function, reads and executes commands from
+         a file but returns an error if file  doesn't exist
+
+builtins/common.h
+       - force_execute_file: new extern declaration
+
+shell.c
+       - main: call start_debugger even if dollar_vars[1] == 0 if the shell
+         isn't interactive (interactive_shell == 0)
+       - start_debugger: call force_execute_file instead of maybe_execute_file;
+         turn off debugging mode if it returns value < 0
+
+                                  11/24
+                                  -----
+hashlib.h
+       - DEFAULT_HASH_BUCKETS: doubled to 128, cost in memory use is small but
+         changes traversal order when not sorting results
+
+                                  11/25
+                                  -----
+doc/{bash.1,bashref.texi}
+       - make it clearer, by breaking it out into a separate paragraph, that
+         referencing an array without a subscript is equivalent to referencing
+         it with subscript 0
+       - add text saying that referencing any variable using a valid subscript
+         is OK
+
+                                  11/28
+                                  -----
+
+arrayfunc.c
+       - bind_array_variable, bind_assoc_variable: allow binding value to a
+         readonly variable if the ASS_FORCE flag is set in the FLAGS
+         argument
+
+subst.h
+       - ASS_FORCE: new assignment flag; means to allow assignment even if
+         variable is marked readonly
+
+builtins/declare.def
+       - when assigning a value to an array or assoc variable using
+         something like `declare -r foo=bar' where foo is an existing array
+         variable, pass the ASS_FORCE to assign_array_var_from_string so
+         the assignment is allowed.  Fixes debian bug 765759
+         http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765759
+
+builtins/setattr.def
+       - var_attribute_string: new function to return (as argument) a char
+         array with attribute flag values for a given variable; returns the
+         length of the array
+
+lib/sh/shquote.c
+       - sh_quote_reusable: function returning a version of its string
+         argument that is quoted for reuse
+
+externs.h
+       - sh_quote_reusable: extern declaration
+
+builtins/common.h
+       - MAX_ATTRIBUTES: define used to size arrays for attribute flag
+         characters
+       - var_attribute_string: new extern function declaration
+
+subst.c
+       - array_remove_pattern: fixed a bug where `var' instead of `v' was
+         tested for invisible attribute
+       - get_var_and_type: fill in a valid *VARP if returning VT_VARIABLE
+         because callers may need to use it
+       - parameter_brace_transform: family of functions to implement the new
+         mksh-inspired ${param@spec} transformation word expansions.  Some
+         of the operators transform the (expanded) value of the parameter,
+         the rest expand to information about the parameter itself
+         (array_transform, parameter_list_transform, list_transform,
+         string_transform, pos_params_assignment, array_var_assignment,
+         string_var_assignment)
+       - parameter_brace_expand: changes to parse the new `@' word expansion
+         operator and call parameter_brace_transform appropriately
+       - parameter_brace_expand: make sure we handle ${#@} as we have before
+         even in the presence of the new `@' operator
+
+variables.c
+       - push_temp_var: make sure to call bind_variable_internal with the
+         ASS_FORCE flag so we override readonly variables created with
+         something like `tempvar=foo declare -r foo'.
+       - bind_variable_internal: honor ASS_FORCE flag to allow binding even
+         if a variable is readonly
+
+execute_cmd.c
+       - struct func_array_state: new state to save state of BASH_LINENO,
+         BASH_SOURCE, and FUNCNAME during function execution so it can be
+         restored on a jump to top level
+       - restore_funcarray_state: new function to restore func_array_state
+       - execute_function: fill in func_array_state variable, add unwind-
+         protect to restore it on jump to top level, call explicitly at
+         end of function if subshell != 0 (may not be necessary, but safe
+         for now).  Fixes bug with local assignments to FUNCNAME reported
+         by Arfrever Frehtes Taifersar Arahesis <arfrever.fta@gmail.com>
+
+                                  11/29
+                                  -----
+arrayfunc.c
+       - assign_compound_array_list: turn off ASS_APPEND flag when processing
+         each individual assignment inside the parens in var+=(...).  The
+         outer += should not affect assignments to existing subscripts;
+         those should be treated like usual assignments unless += supplied
+         inside the parens.  Bug report from Maarten Billemont
+         <lhunath@lyndir.com>, fix from Eduardo A. Bustamante López
+         <dualbus@gmail.com>
+
+config.h.in
+       - HAVE_PSELECT: define if pselect(2) available
+
+configure.ac
+       - check for pselect(2), define HAVE_PSELECT if found
+
+lib/readline/input.c
+       - rl_getc: use pselect(2) to wait for input ready on readline's
+         input fd or for a signal to arrive, will handle SIGWINCH (which
+         does not interrupt read(2)) and thus allow resize to happen without
+         having to wait to read more input.  Only works if pselect available
+         and returns -1/EINTR on a signal even if the signal was installed
+         with SA_RESTART.  From a suggestion from Egmont Koblinger
+         <egmont@gmail.com>
+
+                                  12/3
+                                  ----
+variables.c
+       - flush_temporary_env: new function, disposes all temp variables in
+         temporary_env hash table
+       - bind_variable: only try to update a temporary variable's value in the
+         temporary env if the value argument is not null.  Fixes bug reported
+         by <tangqinghao@360.cn>
+
+variables.h
+       - flush_temporary_env: new extern declaration
+
+subst.c
+       - command_substitute: if running command substitution as part of
+         expanding a redirection (expanding_redir == 1), flush any temporary
+         environment we've inherited as part of this command, since we are not
+         supposed to have access to the temporary environment.  Since
+         expanding_redir only controls access to the temporary environment for
+         variable lookup and binding, we can turn it off in the subshell
+
+                                  12/4
+                                  ----
+builtins/printf.def
+       - printstr: make sure a missing precision specifier after a `.' is
+         treated as 0, as printf(3) specifies.  Fixes ubuntu bash bug
+         1399087 (https://bugs.launchpad.net/ubuntu/+source/bash/+bug/1399087)
+
+                                  12/5
+                                  ----
+subst.c
+       - skip_to_delim: if scanning past process substitution (skipcmd == 1,
+         noprocsub == 0), use extract_delimited_string instead of
+         extract_process_subst, which was changed a while back (bash-4.3.23)
+         to use xparse_dolparen.  xparse_dolparen complains if the command
+         or process substitution is unterminated, since it runs the parser,
+         which is not what we want here.  Command substitution does the same
+         thing.  Fixes bug reported by  Daniel Kahn Gillmor
+         <dkg@fifthhorseman.net> as Debian bash bug 771968
+         (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771968)
+
+                                  12/6
+                                  ----
+subst.c
+       - command_substitute: short-circuit without forking on a command string
+         that consists entirely of <blank>s and newlines
+
+jobs.c
+       - make_child: changes to allow interrupts through if fork fails and
+         we are sleeping for `forksleep' seconds
+       - waitchld: make things a little more resilient if CHILD ends up NULL
+
+                                  12/12
+                                  -----
+lib/readline/complete.c
+       - rl_display_match_list: when calculating common prefix to display in
+         color, make sure we correctly handle a common prefix with a trailing
+         `/' as we do when checking whether or not to add an ellipis.
+         printable_part() doesn't return the whole pathname if it ends in a
+         slash, to avoid printing null strings, so we have to make sure we
+         have the entire prefix
+
+lib/readline/complete.c
+       - _rl_complete_display_matches_interrupt: new variable, set to 1 by
+         _rl_complete_sigcleanup to let rl_display_match_list know it has
+         freed the match list
+       - display_matches: check for signals during the printing loops with
+         RL_SIG_RECEIVED(), return immediately if there is a pending signal
+         (might not want to do this if it's SIGWINCH -- CHECK)
+       - rl_complete_internal: if _rl_complete_display_matches_interrupt
+         set after calling display_matches, just null out `matches' since
+         it's already been freed and call any application-set signal hook
+
+                                  12/14
+                                  -----
+parse.y
+       - time_command_acceptable: if the token before a newline is `|',
+         return 0, since it's not really valid to time inside a pipeline.
+         Only handles a single newline but allows things like
+               echo a |
+                time cat
+         to invoke /usr/bin/time, which is probably enough to catch the
+         stray carriage return.  Fixes bug reported by Andre Majorel
+         <aym-ung@teaser.fr>
+
+builtins/declare.def
+       - declare_internal: don't try to perform compound assignments unless
+         the WORD_DESC has flags including W_COMPASSIGN (maybe should check
+         W_ASSIGNMENT as well), avoiding unexpected evaluation if a word
+         is of the form (word) and is assigned to an array variable like so:
+         declare -x var=$value.  Bug reported by Stephane Chazelas
+         <stephane.chazelas@gmail.com>. Will eventually be contingent on
+         compatibility level > 43, but not there yet. TENTATIVE
+
+                                  12/15
+                                  -----
+lib/sh/Makefile.in
+       - add missing dependencies for shmatch.o.  Pointed out by Sergey
+         Mikhailov <sergey.mikhailov@gmail.com>
+
+                                  12/16
+                                  -----
+{execute_cmd,subst}.c
+       - W_ASSIGNINT: remove, not used any more
+
+execute_cmd.c
+       - fix_assignment_words: don't look for `-i' option and set W_ASSIGNINT
+         flag any more; doing things a different way
+       - shell_expand_word_list: instead of using W_ASSIGNINT flag, since it
+         doesn't take into account all options that can transform values on
+         assignment (-l/-u/-c can also), go through option arguments looking
+         for options that need special handling and add them to the `opts'
+         array for make_internal_declare to use.  Fixes bug with constructs
+         like `declare -al foo=(UPONE UPTWO UPTHREE)' not being lowercased on
+         assignment reported by Linda Walsh <bash@tlinx.org>
+
+
+
+                                  12/18
+                                  -----
+lib/readline/readline.c
+       - rl_internal_char: when we read EOF on a non-empty line, check for
+         signals and invoke any readline signal handling and any application-
+         installed signal hook
+
+                                  12/20
+                                  -----
+lib/readline/readline.c
+       - rl_internal_char: if we read EOF on a non-empty line, set c to
+         _rl_eof_char the first time through.  If we read EOF the next time,
+         return EOF from readline().  If callbacks are defined, this returns
+         EOF immediately, since lastc isn't available.  Fix for problem
+         most recently identified by Jiri Kukacka <jiri.kukacka@orcle.com>,
+         it has come up in the past
+
+                                  12/21
+                                  -----
+builtins/declare.def
+       - declare_internal: keep track of whether or not an assignment statement
+         argument to declare is an array subscript assignment; need to
+         differentiate assignments from straight declarations (declare a[4])
+         which are accepted for backwards compatibility
+       - assignment statements like declare a[2]=foo are now treated as
+         straight subscript assignment statements if a already exists as an
+         array variable
+       - declare foo='(1 2 3)' is treated as an assignment to foo[0] if foo
+         exists and is an array, just as it would be if it were an assignment
+         statement and `declare' was not present.  All this from a proposal
+         by Stephane Chazelas <stephane.chazelas@gmail.com>
+
+                                  12/22
+                                  -----
+builtins/read.def
+       - read_tty_modified: function to tell the rest of the shell if the
+         read builtin has modified the tty
+       - read_builtin: make sure to initialize terminating signals before
+         installing a SIGALRM signal handler in case we modify the tty as
+         well as ask for a timeout; the subsequent call to
+         initialize_terminating_signals would overwrite the read-builtin-
+         local SIGALRM handler
+
+builtins/common.h
+       - read_tty_modified: new extern declaration
+
+shell.c
+       - exit_shell: if read_tty_modified() returns true, call read_tty_cleanup
+         to undo the terminal modifications. Extension of previous fixes;
+         fixes bug with read -s reported by Richard W. Marsden
+         <richard@marsden.nu>
+
+
+                                  12/23
+                                  -----
+builtins/setattr.def
+       - show_var_attributes: call print_array_assignment and print_assoc_assignment
+         with a `not quoted' flag so the assignment statements are not
+         surrounded by single quotes.  Caused changes to a lot of test output
+
+                                  12/29
+                                  -----
+lib/readline/complete.c
+       - stat_char: Windows doesn't handle X_OK flag to access(2); use file
+         extensions to determine whether or not a file is executable.  Bug
+         report and fix from Eli Zaretskii <eliz@gnu.org>
+
+configure.ac
+       - changed version to bash-4.4-devel
+
+lib/readline/readline.h
+       - changed version to readline-6.4
+
+                                  12/30
+                                  -----
+readline.h
+       - struct readline_state: fix types of `ignorefunc' and `attemptfunc'
+         members
+
+lib/sh/shquote.c,externs.h
+       - sh_contains_shell_metas, sh_contains_quotes: now take `const char *'
+         as parameter
+
+stringlib.c,externs.h
+       - strcreplace: `text' argument now `const char *'
+
+pathexp.[ch]
+       - quote_globbing_chars: `string' argument now `const char *', accompanying
+         changes to function local variables
+
+pcomplete.c
+       - preproc_filterpat: `text' argument now `const char *'
+       - filter_stringlist: `text' argument now `const char *'
+
+                                  12/31
+                                  -----
+builtins/evalstring.c
+       - should_suppress_fork: new function, broke code that decides whether
+         to turn on CMD_NO_FORK flag out of parse_and_execute into a separate
+         function
+
+execute_cmd.c
+       - execute_command_internal: AND_AND, OR_OR: call should_suppress_fork
+         for the RHS of && and ||, make `make' invocations marginally more
+         efficient
+
+flags.c
+       - get_current_flags: returns a bitmap of all single-letter shell
+         options with a non-zero value meaning option is enabled
+       - set_current_flags: set current single-letter options from a passed
+         bitmap, which has presumably been initialized with get_current_flags
+
+flags.h
+       - {get,set}_current_flags: new extern declarations
+
+builtins/declare.def
+       - declare_internal: if invoked as `local', interpret name argument of
+         `-' to mean to save (and restore at shell return) single-letter
+         shell options
+
+variables.c
+       - push_func_var: if we encounter `-' as the name of a local variable,
+         take the value and call set_current_flags on it to restore old
+         flag settings
+
+builtins/set.def
+       - get_current_options: returns a bitmap of all shell options settable
+         with `set', with a non-zero value meaning option is enabled
+       - set_current_options: set current shell options from a passed
+         bitmap, which has presumably been initialized with get_current_options
+
+
+                                1/1/2015
+                                --------
+lib/readline/parens.c
+       - _rl_blink_matching_paren: initialize to 0 whether or not select(2) is
+         available.  Inconsistency reported by Mark Karpov
+         <markkarpov@opmbx.org>
+
+builtins/declare.def
+       - declare_internal: use get_current_options instead of
+         get_current_flags, so `local -' can be generalized
+
+variables.c
+       - push_func_var: use set_current_options instead of set_current_flags
+         so `local -' can be generalized
+
+doc/{bash.1,bashref.texi}
+       - document new `local -' feature; originally inspired by Robert Elz
+         <kre@munnari.oz.au> describing feature in NetBSD sh
+
+                                   1/3
+                                   ---
+lib/readline/{complete,funmap,kill,histfile,util}
+lib/readline/readline.h
+lib/tilde/tilde.c
+       - fixes for filename- and evironment-related issues on Windows.  Fixes
+         from Eli Zaretskii <eliz@gnu.org>
+       - Windows can paste to the console from the clipboard like Cygwin
+       - Windows uses $APPDATA as a pseudo-$HOME
+
+lib/readline/input.c
+       - rl_getc: use _getch on Windows to avoid being overridden by a getch
+         ncurses function
+       - win32_isatty: replace Windows isatty(3) with a function that does
+         additional checks, sinces Windows isatty returns non-zero for
+         every character device.  From Eli Zaretskii <eliz@gnu.org>
+
+lib/readline/display.c
+       - delete_chars: if compiled with ncurses on Windows, this code can
+         work, so build it in if NCURSES_VERSION defined
+       - open_some_spaces: ditto
+
+                                   1/6
+                                   ---
+doc/{bash.1,bashref.texi}
+       - minor grammar and typo corrections from TonyMc <afmcc@btinternet.com>
+
+                                   1/8
+                                   ---
+sig.c
+       - throw_to_top_level: only attempt to run the interrupt trap if SIGINT
+         is trapped -- minor optimization
+       - throw_to_top_level: if we are running a trap, call run_trap_cleanup
+         to turn off the sigmodes flags
+
+trap.c
+       - _run_trap_internal: temporarily suppress pending SIGINTs while running
+         one of the traps the shell handles internally (e.g., ERR).  Fixes bug
+         reported by Keith Thompson <keithsthompson@gmail.com>
+
+                                  1/10
+                                  ----
+bashhist.c
+       - bash_history_inhibit_expansion: use skip_to_delim with the history
+         expansion character to see whether or not the instance of the
+         history expansion character should be skipped because, for instance,
+         it is in a command substitution.  Fixes issue reported by
+         Zigmund.Ozean@zig-home.localdomain
+
+                                  1/14
+                                  ----
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: if we are in a multibyte locale, make sure to
+         use _rl_find_prev_mbchar when trying to delete characters from the
+         search string, instead of just chopping off the previous byte.
+         Fixes bug reported by Kyrylo Shpytsya <kshpitsa@gmail.com>
+
+lib/readline/complete.c
+       - rl_filename_completion_function: if we tilde-expand `dirname', make
+         sure we use the expanded result instead of throwing it away for the
+         quote-removed `users_dirname', which still has any leading tilde.
+         Fixes bug reported by Dave Rutherford <dave@evilpettingzoo.com>
+
+execute_cmd.c
+       - select_query: if the read builtin doesn't return anything in REPLY,
+         return NULL (failure). Fixes bug reported by Etherial Raine
+         <osirisgothra@hotmail.com>
+
+builtins/read.def
+       - read_builtin: if REPLY has the readonly or noassign attribute, return
+         failure
+
+                                  1/16
+                                  ----
+redir.c
+       - redir_open: if open() returns -1/EINTR, check traps as well as
+         using QUIT to handle signals
+
+                                  1/18
+                                  ----
+jobs.c
+       - wait_for: make sure queue_sigchld is set to 1 before unblocking
+         SIGCHLD if MUST_UNBLOCK_CHLD is defined
+
+                                  1/19
+                                  ----
+pcomplete.h
+       - new progcomp option: COPT_NOSORT, means to not sort list of possible
+         completions
+
+pcomplete.c
+       - pcomp_set_readline_variables: if COPT_NOSORT set in compspec flags,
+         set rl_sort_completion_duplicates to 0
+
+builtins/complete.def
+       - _compopt: new option value: -o nosort, sets COPT_NOSORT in compspec
+         option flags. Provides new -o nosort option for complete and compgen
+
+bashline.c
+       - attempt_shell_completion: make sure rl_sort_completion_matches is
+         set to 1 before completion is attempted; allow a compspec to turn
+         it off
+
+lib/readline/kill.c
+       - rl_vi_yank_pop: new function, vi-mode version of yank-pop.  Original
+         code from Ian Kelling <ian@iankelling.org>
+
+lib/readline/funmap.c
+       - `vi-yank-pop': bindable name mapped to rl_vi_yank_pop
+
+lib/readline/readline.h
+       - rl_vi_yank_pop: extern declaration
+
+                                  1/21
+                                  ----
+lib/sh/shquote.c
+       - sh_backslash_quote: change to understand and handle multibyte
+         characters, using is_basic, COPY_CHAR_P.  See
+         https://bugzilla.redhat.com/show_bug.cgi?id=1184320 for original
+         report
+
+                                  1/23
+                                  ----
+include/posixjmp.h
+       - use setjmp_sigs instead of redefined setjmp, it fails on Cygwin.
+         Report from Eric Blake <eblake@redhat.com>
+
+builtins/wait.def,shell.c
+       - use setjmp_sigs instead of setjmp call, since setjmp no longer
+         redefined to something known
+
+include/chartypes.h, lib/readline/chardefs.h
+       - make sure all ctype.h macros are called with unsigned char args,
+         casting to make sure
+
+lib/sh/casemod.c
+       - sh_modcase: don't assume that the upper and lower case versions of a
+         character are the same width, so don't try to do the conversion in
+         place: convert and copy the converted characters one or more at a
+         time to the returned string
+       - sh_modcase: since upper and lower case versions of same character
+         may have different widths in some locales, don't shortcut and assume
+         that we can do single-byte case modification (toupper) with a
+         single-byte input character (e.g., `i').  Fix for problem reported
+         by Stephane Chazelas <stephane.chazelas@gmail.com>
+
+                                  1/31
+                                  ----
+lib/readline/histfile.c
+       - history_truncate_file, history_do_write: if the first rename(2)
+         of the history file to the backup file fails, set the backup file
+         name to NULL to prevent any later attempts to restore the
+         original.  Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
+       - history_do_write: don't attempt to back up non-regular files.
+         Report from Jonathan Hankins <jhankins@homewood.k12.al.us>
+
+                                   2/2
+                                   ---
+trap.c
+       - run_interrupt_trap: now takes an argument indicating whether or not
+         it was called just before a longjmp to top_level; change callers
+       - run_interrupt_trap: if running a trap and we are being called before
+         a longjmp to top_level, call run_trap_cleanup on running trap so
+         a QUIT call while running a DEBUG trap, for instance, doesn't leave
+         sigmodes[DEBUG_TRAP] including SIG_INPROGRESS.  Fixes bug reported
+         by Chih-Chieh Chou <ccchou@gmail.com>
+
+sig.c
+       - throw_to_top_level: change call to run_interrupt_trap to pass arg 1
+       - termsig_handler: change call to run_interrupt_trap
+
+trap.h
+       - run_interrupt_trap: update extern prototype declaration
+
+                                   2/4
+                                   ---
+lib/readline/histfile.c
+       - histfile_backup, histfile_restore: new functions to back up and restore
+         history file to `filename-', following (one level of) symlinks through
+         so we don't rename the symlink itself.  From a suggestion by
+         Jonathan Hankins <jhankins@homewood.k12.al.us>
+
+assoc.c
+       - assoc_to_assign: if an index happens to be `@' or `*', make sure it's
+         double-quoted.  Bug report from Greg Wooledge <wooledg@eeg.ccf.org>
+
+                                   2/5
+                                   ---
+lib/readline/bind.c
+       - rl_bind_key: if we are rebinding a key that is not bound to a
+         function or a macro, construct a key sequence and pass it to
+         rl_bind_keyseq.  Make sure that '\' when it is used as a key is
+         changed to "\\" so it can survive rl_translate_keyseq.  Fixes
+         https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776743
+
+                                   2/8
+                                   ---
+include/posixjmp.h
+       - _rl_longjmp, sh_longjmp: new defines, expand to siglongjmp or longjmp
+         depending on autoconf results, used to avoid redefining longjmp,
+         remove _OPENNT conditional code.  Report from Eric Blake
+         <eblake@redhat.com>
+
+{bashjmp,quit}.h,{execute_cmd,expr,jobs,sig,trap}.c,builtins/{evalstring.c,return.def}
+       - change calls to longjmp to use sh_longjmp
+
+lib/readline/util.c
+       - change calls to longjmp to use _rl_longjmp
+
+                                  2/18
+                                  ----
+variables.c
+       - bind_int_variable: make sure `v' is non-null before making it visible
+
+                                  2/19
+                                  ----
+arrayfunc.c
+       - assign_array_var_from_word_list: after assignment, mark variable as no
+         longer invisible
+       - assign_array_var_from_string: after assignment, mark variable as no
+         longer invisible
+
+builtins/declare.def
+       - declare_internal: add warning if an attempt is made to use a quoted
+         compound assignment as an argument to declare (declare -a foo='( 1 2 )');
+         backwards compatible with bash-4.3. Still a tentative change
+
+                                  2/20
+                                  ----
+lib/glob/smatch.c
+       - is_wcclass: check malloc() return value, return -1 if it fails
+         Report from Tobias Stoeckmann <tobias@stoeckmann.org>
+
+lib/sh/shmatch.c
+       - sh_regmatch: check malloc() return value, handle NULL value if it
+         fails.  Report from Tobias Stoeckmann <tobias@stoeckmann.org>
+
+                                  2/22
+                                  ----
+lib/readline/doc/rltech.texi
+       - rl_callback_handler_install: note that the handler function should
+         free the line it receives, as with readline.  Suggested by
+         Ulf Magnusson <ulfalizer@gmail.com>
+       - Readline Signal Handling: note that application needs to clean up
+         readline's terminal state if it wants to handle a signal before
+         the line handler restores it.  Suggested by Ulf Magnusson
+         <ulfalizer@gmail.com>
+
+                                  2/24
+                                  ----
+lib/readline/histfile.c
+       - history_do_write,history_truncate_file: if the write fails, make sure
+         to set history_lines_written_to_file to 0 so we don't lose those
+         history entries
+
+                                  2/27
+                                  ----
+execute_cmd.c
+       - execute_function: unwind-protect the value of line_number_for_err_trap,
+         so a function that returns a non-zero value and triggers an ERR trap
+         has the right value for LINENO. Any simple command in the function
+         body can change it.  Bug report from Paul Donohue <gnu@paulsd.com>
+
+                                   3/5
+                                   ---
+lib/sh/shquote.c
+       - sh_backslash_quote: cast `c' to `unsigned char' before using as
+         index into backslash_table.  Report and fix from
+         alexeyv.90@gmail.com
+
+arrayfunc.[ch]
+       - valid_array_reference: added second `flags' argument for future use;
+         currently unused
+
+parse.y,{redir,subst,variables,test}.c
+builtins/{declare,printf,read,set}.def
+       - valid_array_reference: changed callers
+
+                                   3/7
+                                   ---
+lib/readline/signals.c
+       - _rl_handle_signal: if readline gets a SIGTSTP or SIGTTIN, block
+         SIGTTOU so a backgrounded readline can reset the terminal settings
+         appropriately, otherwise the terminal state and readline's idea
+         of it can get messed up.  Original report from Dave Wysochanski
+         <dwysocha@redhat.com> and Dave Anderson <anderson@redhat.com>
+
+trap.c
+       - run_pending_traps: don't allow recursive SIGWINCH trap invocations;
+         they're wasteful and trying to handle a stream of signals while a
+         user resizes the terminal can lead to malloc errors trying to save
+         and restore the_pipeline multiple times.  Problem reported most
+         recently by Martin M. S. Pederson (Fedora bash bug 1197768
+         https://bugzilla.redhat.com/show_bug.cgi?id=1197768)
+       - reset_or_restore_signal_handlers: set pending_traps to 0 for all
+         signals when forking a child. TENTATIVE fix
+
+jobs.c
+       - {save,restore}_pipeline: block SIGCHLD while manipulating the_pipeline
+         like cleanup_the_pipeline does. XXX - may not be necessary
+
+lib/readline/display.c
+       - rl_redisplay: fixed case where multibyte character in the prompt
+         (e.g., \u03bb) in the last screen column causes problems with line
+         wrapping because the newline marker is put in the middle of the
+         multibyte char.  Most recently reported on Ubuntu by
+         <sterpe@gmail.com>
+
+pathexp.c
+       - quote_string_for_globbing: if a bracket expression doesn't have a
+         closing right bracket, rescan it from just after the opening
+         bracket without treating it as a bracket expression.  Bug report
+         from Stephane Chazelas <stephane.chazelas@gmail.com>
+
+                                   3/9
+                                   ---
+subst.c
+       - process_substitute: keep the last pipeline created to run a process
+         substitution in LAST_PROCSUB_CHILD; discard it when another one is
+         created
+
+jobs.[ch]
+       - discard_pipeline: now global, so process_substitute can call it
+
+jobs.c
+       - last_procsub_child: new variable, set and modified only by the process
+         substitution code
+       - find_pipeline: if the requested pid is in LAST_PROCSUB_CHILD, return
+         it; analogous to the way this code handles the_pipeline
+       - waitchld: if we find a child via find_pipeline that is a part of the
+         last process substitution child, mark that child appropriately.  If
+         the child is dead, add it to the bgp list.  This and the previous
+         change allow waiting for the most recent process substitution (the
+         one corresponding to $!).  Original report from Stephane Chazelas
+         <stephane.chazelas@gmail.com>
+
+                                  3/10
+                                  ----
+arrayfunc.c
+       - unbind_array_element: make sure skipsubscript() doesn't try to parse
+         embedded quotes in the subscript, since this has already been through
+         one round of word expansion before calling the unset builtin.  (This
+         function is only called by the unset builtin).  Fixes bug reported by
+         <vampyrebat@gmail.com>
+
+                                  3/17
+                                  ----
+jobs.c
+       - waitchld: move code that adds the last process substitution pid to
+         the bgpids array from waitchld (where it can call malloc in a signal
+         handler context) to cleanup_dead_jobs
+
+                                  3/19
+                                  ----
+subst.c
+       - parameter_brace_expand: if expanding an array in a context where word
+         splitting will not take place (W_ASSIGNRHS only for now), make sure
+         to pass the double-quoted flag to chk_atstar so we don't get the
+         unquoted $* behavior, which will cause unwanted word splitting.
+         Fixes bug reported by isabella parakiss <izaberina@gmail.com>
+
+arrayfunc.c
+       - unbind_array_element: don't assume that caller will check and pass
+         only array variables; don't allow non-array variables to be unset
+         using the `@' or `*' subscripts and don't allow any subscripts other
+         than 0; return -2 in those cases
+       - unbind_array_element: unset a non-array variable if passed a subscript
+         of `0' (e.g., `unbind "scalar[0]"').  This is new functionality that
+         parallels the ${scalar[0]} expansion
+
+builtins/set.def
+       - unset_builtin: don't check whether a variable is an array if it's
+         referenced using array syntax (scalar[0]); pass it to
+         unbind_array_element anyway and check the result.  This means that
+         `unset scalar' and `unset scalar[0]' are equivalent
+
+                                  3/20
+                                  ----
+builtins/set.def
+       - set_builtin: make `-i' an invalid option, unconditionally for now.
+         From a bug-bash discussion started by Peng Yu <pengyu.ut@gmail.com>
+
+                                  3/21
+                                  ----
+lib/readline/colors.c
+       - _rl_print_color_indicator: handle dangling symlinks (C_ORPHAN) and
+         the `target' specifier for links (dereference S_ISLNK if the target
+         exists).  Bug report and fix from andreas@stapelspeicher.org
+
+{arrayfunc,subst}.c
+       - add code to save and restore this_command_name in places that set
+         this_command_name to NULL to prevent error messages from arithmetic
+         evaluation.  Fixes bug reported by brian.carpenter@gmail.com
+
+builtins/mapfile.def
+       - do_chop: remove a new DELIM argument from the line, instead of
+         unconditionally removing newline
+       - mapfile: if -d delim is supplied and we are breaking fields at DELIM,
+         remove DELIM if the -t option is supplied by passing DELIM to do_chop().
+         Suggested by Geir Hauge <geir.hauge@gmail.com>
+
+doc/{bash.1,bashref.texi}
+       - mapfile: document new -t option behavior, defaults are the same
+
+builtins/alias.def
+       - print_alias: if the first character of an alias name is `-', add a
+         `-- ' after `alias' to avoid option errors when trying to reuse the
+         output.  Bug report and fix on savannah from Pasha Bolokhov
+         <pasha.bolokhov@gmail.com>
+
+                                  3/22
+                                  ----
+builtins/declare.def
+       - declare_internal: if creating a variable does not return a valid
+         variable in VAR, check for null variable before dereferencing it.
+         This happens with nameref variables referencing variables set to
+         the empty string.
+         Fixes bug reported by Arthur200000 <arthur200126@163.com> 
+
+                                  3/23
+                                  ----
+doc/{bash.1,bashref.texi}
+       - INVOCATION: add language to make it clear that non-interactive login
+         shells execute ~/.bash_logout if they run the `exit' builtin.  From a
+         question from Christoph Anton Mitterer <calestyo@scientia.net>
+
+                                   4/6
+                                   ---
+subst.c
+       - process_substitute: increment and decrement subshell_level around
+         calls to parse_and_execute, as in command substitution, so
+         $BASH_SUBSHELL gets new values in the subshell.  Fixes inconsistency
+         pointed out by Peng Yu <pengyu.ut@gmail.com>
+
+doc/{bash.1,bashref.texi}
+       - read: add clarifying text to note that the -N option does not split
+         on $IFS, but does retain backslash as an escape character subject
+         to -r.  Report from isabella parakiss <izaberina@gmail.com>
+
+builtins/declare.def
+       - declare_internal: unless it's the last statement in a {...} block,
+         NEXT_VARIABLE must be protected by braces.  Bug introduced in patch
+         from 3/22, reported by Eduardo A. Bustamante López
+         <dualbus@gmail.com>
+
+                                   4/7
+                                   ---
+parse.y
+       - shell_getc: if bash is reading input from a string that ends with an
+         unquoted backslash, add another backslash instead of a newline, since
+         the backslash and newline will disappear in normal processing.  Fixes
+         bug with `bash -c 'eval \\; echo y' ' skipping the eval command and
+         setting incorrect exit status, and `bash -ic 'eval \\; echo y' '
+         seeing EOF on empty line and exiting before the echo.  Keep track of
+         backslash state with last_was_backslash; set in char reading loop.
+         Fixes bug reported by Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                   4/8
+                                   ---
+shell.c
+       - main: check for $INSIDE_EMACS as well as $EMACS when deciding whether
+         or not bash is being run in a GNU emacs shell window.  Don't bother
+         checking whether $TERM is unset because variable initialization sets
+         it to `dumb' if unset.  Fixes from Paul Eggert <eggert@CS.UCLA.EDU>
+
+parse.y
+       - push_token: new function, rotates current_token through last_read_token,
+         saving old values like yylex() does, sets current_token to argument
+
+evalfile.c
+       - _evalfile: if current_token is yacc_EOF, push a newline as the value
+         of current_token instead, using push_token().  yacc_EOF can result if
+         sourced file doesn't end with a newline but does end with an unescaped
+         backslash.  Fixes bug reported by Pedro Gimeno
+         <pgwr-842@personal.formauri.es>
+
+lib/readline/histfile.c
+       - use PARAMS(x) instead of __P(x).  Bug reported by Evan Gates
+         <evan.gates@gmail.com>
+
+                                   4/9
+                                   ---
+execute_cmd.c
+       - execute_simple_command: if we haven't already forked, and we have
+         created FIFOs, turn off the no-fork optimization in the simple
+         command's flags. Originally reported to savannah by Kuang-che Wu as
+         https://savannah.gnu.org/support/index.php?108732
+
+                                  4/10
+                                  ----
+trap.c
+       - trap_if_untrapped: new function, sets a trap on a signal if that
+         signal is not already trapped
+       - maybe_set_debug_trap: new function, sets DEBUG trap to command string
+         argument only if it's not already trapped
+
+trap.h
+       - maybe_set_debug_trap: new extern declaration
+
+
+builtins/source.def
+       - source_builtin: if the -T option isn't set, use maybe_set_debug_trap
+         in the unwind-protect instead of unconditionally restoring the old
+         trap string. That means if the sourced file changes the DEBUG trap,
+         that new trap will persist instead of being undone when the old
+         value is restored. Fixes bug reported by Scott Bronson
+         <bronson@rinspin.com>
+
+builtins/evalstring.c
+       - parse_string: before we jump to top_level, if we are at the `bottom'
+         of the parse_and_execute stack (parse_and_execute_level == 0), call
+         top_level_cleanup() before jumping so the right cleanup happens (e.g.,
+         cleaning up redirections and other state).  Fixes bug reported by
+         Sam Liddicott <sam@liddicott.com>
+
+                                  4/15
+                                  ----
+jobs.c
+       - delete_job: only add J_ASYNC (and not J_FOREGROUND) jobs to the
+         bgpids array, since Posix says shells only need to save the status
+         of async jobs.  Report and fix from John Fremlin <john@fb.com>
+
+                                  4/17
+                                  ----
+pcomplib.c
+       - COMPLETE_HASH_BUCKETS: increase to 256 since bash-completion is
+         over 300 completions by now
+
+variables.c
+       - VARIABLES_HASH_BUCKETS: constant used to size shell variables hash
+         table instead of relying on hash library default.  Used in calls
+         to hash_create in create_variable_tables(), push_temp_var(), and
+         push_func_var().  Currently set to 1024 because why not?  From a
+         discussion starting at
+         https://lists.gnu.org/archive/html/bug-bash/2015-04/msg00089.html
+       - initialize_shell_variables: if FUNCTION_IMPORT is not defined, the
+         nested conditional compilation causes syntax errors.  Bug and fix
+         from Eric Blake <eblake@redhat.com>
+
+configure.ac
+       - function-import: fix typo, assign to correct variable.  Found as the
+         result of a report by Eric Blake <eblake@redhat.com>
+
+shell.c
+       - open_shell_script: check whether or not file argument is a
+         directory before opening; Posix says that implementations may open
+         a directory with O_RDONLY.  Bug report from
+         Eduardo A. Bustamante López <dualbus@gmail.com>
+
+                                  4/19
+                                  ----
+ulimit.def
+       - fix typo in limits[] declaration of `k'
+
+                                  4/20
+                                  ----
+configure.ac
+       - add template definitions set by AC_USE_SYSTEM_EXTENSIONS from a report
+         from Andreas Schwab <schwab@linux-m68k.org>
+
+variables.c
+       - FUNCTIONS_HASH_BUCKETS: constant used to size the hash tables used for
+         shell functions and the text of shell function definitions.  Initially
+         set to 512, even though it's a really rare case that someone has more
+         than around 150 functions, even with bash-completion
+
+                                  4/21
+                                  ----
+shell.c
+       - main: malloc_set_register: change arg to 0 to disable keeping track of
+         allocations and frees in table; change to 1 for malloc debugging on
+         demand.  Table is too small to keep effective track of allocations on
+         a modern system, need to use something like valgrind
+
+                                  4/22
+                                  ----
+shell.c
+       - main: move cmd_init() (initialize word desc and word list object
+         caches) after startup files are read so the cache doesn't get filled
+         up with semi-permanent storage for shell functions and variables
+
+execute_cmd.c
+       - execute_function: use maybe_set_debug_trap in the same way as source
+         builtin change from 4/10 to allow functions to reset a DEBUG trap
+         when set -T not in effect.  From a report by Peng Yu
+         <pengyu.ut@gmail.com>
+
+                                  4/23
+                                  ----
+execute_cmd.c
+       - execute_disk_command: don't overwrite value of subshell_environment
+         by assigning SUBSHELL_FORK; just OR in SUBSHELL_FORK so something
+         like SUBSHELL_ASYNC or SUBSHELL_PIPE is preserved
+
+jobs.c
+       - wait_for: don't call give_terminal_to if running in a subshell
+         environment, not just if running_in_background is set; don't want
+         shell functions waiting for a process to complete in a pipeline to
+         give the terminal to the wrong process group.  Part of fix for bug
+         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
+       - make_child: child process should not try to give the terminal to the
+         pipeline_pgrp if running as part of a pipeline (SUBSHELL_PIPE in
+         subshell_environment); functions in execute_cmd.c don't set that
+         flag until after make_child returns and the child process is running.
+         Rest of fix for bug reported by Valentin Bajrami
+         <valentin.bajrami@gmail.com>
+
+                                  4/24
+                                  ----
+redir.c
+       - redirection_error: if the redirection involves {varname}, only use
+         `varname' in the error message if the error code is < 0 (one of the
+         internal redirection errors, like ambiguous or bad variable name);
+         otherwise the issue is probably with the filename and should be treated
+         as usual.  Fixes problem reported by Dr. David Alan Gilbert
+         <dgilbert@redhat.com>
+
+configure.ac,config.h.in
+       - sys/ioctl.h: add check in AC_CHECK_HEADERS macro, define HAVE_SYS_IOCTL_H
+
+lib/readline/{rltty,terminal}.c
+       - sys/ioctl.h: include unconditionally for ioctl declaration, avoid
+         issues with `implicit declaration' warnings.  Issue originally
+         raised on gdb list by Chen Gang <xili_gchen_5257@hotmail.com>
+
+                                  4/27
+                                  ----
+lib/malloc/table.c
+       - mem_table: now a circular buffer showing the state of the last
+         REG_TABLE_SIZE allocations rather than a hash table that quickly
+         fills up
+
+builtins/declare.def
+       - typeset_builtin: add -n to list of supported options.  Omission
+         reported by Valentin Bajrami <valentin.bajrami@gmail.com>
+
+unwind_prot.c
+       - use object caches instead of malloc/free to allocate and deallocate
+         unwind-protect elements
+       - uwp_init: initialize unwind-protect element object cache
+
+unwind_prot.h
+       - uwp_init: extern declaration
+
+shell.c
+       - main: call uwp_init right after calling cmd_init -- initialize all the
+         object caches at the same place
+
+lib/malloc/table.[ch]
+       - mlocation_table: new table to keep track of allocation locations by
+         file and line, functions to initialize table, record an allocation,
+         and dump the table to stderr
+       - mregister_alloc: call mlocation_register_alloc to record the location
+         (source file/line) for each allocation to pinpoint malloc hot spots
+         by number of calls.  More detail than gprof
+
+parse.y
+       - set_line_mbstate: replace free/xmalloc pair with xrealloc call
+       - read_token_word: call alloc_word_desc instead of xmalloc so we can take
+         advantage of the WORD_DESC cache
+
+                                  4/28
+                                  ----
+execute_cmd.c
+       - execute_simple_command: if command execution fails because the command
+         is a directory, and the `autocd' option is set, add a `--' argument
+         to the constructed `cd' command to protect against command names with
+         the same name as options to `cd'.  Report and fix from
+         isabella parakiss <izaberina@gmail.com>
+
+                                  4/30
+                                  ----
+jobs.c
+       - printable_job_status, j_strsignal: change calls to strcpy and sprintf
+         that write to retcode_name_buffer to use strncpy and snprintf to
+         avoid buffer overflows caused by malicious translations.  Bug and fix
+         from Trammell Hudson <Trammell.Hudson@twosigma.com>
+
+                                   5/1
+                                   ---
+strtrans.c
+       - ansicstr: make sure the buffer is at least 12 bytes to ensure enough
+         space for any eventual call to u32cesc for one multibyte char
+
+                                   5/4
+                                   ---
+jobs.c
+       - wait_for: if an interactive shell is running a loop and waiting for
+         a non-builtin command to exit, and the command exits due to SIGINT,
+         act as if the shell received the SIGINT as well and break the loop.
+         This matches the behavior when the shell is running a builtin command
+         in a loop, and when running a non-builtin command outside a loop, and
+         seems more broadly useful than running the trap handler over and over
+         again.  Report originally from Kaz Kylheku <kkylheku@gnu.org>
+
+builtins/set.def
+       - unset_builtin: use different variables for keeping the state of the
+         -f and -v options than the loop uses to decide whether or not to
+         treat a name as a function or a variable.  Fixes problem with
+         unset_function setting `sticking' after you unset a function when
+         invoked with no options.  Bug report from Dreamcat4
+         <dreamcat4@gmail.com>
+
+shell.c
+       - open_shell_script: set running_shell_script to 1, set to 0 in every
+         other case (new variable)
+       - main: when checking whether or not to call start_debugger, test
+         running_shell_script instead of dollar_vars[1].  The goal is to not
+         invoke the debugger for interactive shells but allow it to run for
+         things like `bash --debugger -i /tmp/script'.  Problem reported by
+         Rocky Bernstein <rocky@gnu.org>
+
+lib/readline/histexpand.c
+       - history_event_delimiter_chars: new (as yet undocumented) variable
+         containing by default characters that can delimit a history event
+         specifier without requiring a `:': "^$*%-" as the documentation has
+         always said.  Fixes bug reported by Anders Granlund
+         <anders.granlund.0@gmail.com>
+
+                                  5/10
+                                  ----
+lib/glob/gmisc.c
+       - match_pattern_char, match_pattern_wchar: if passed an empty string,
+         return a match if the first character of the pattern is `*'
+
+subst.c
+       - pat_subst: change to allow empty strings to be replaced as long as
+         pattern matches empty string.  Report and fix from isabella parakiss
+         <izaberina@gmail.com>
+
+                                  5/12
+                                  ----
+lib/sh/strtrans.c
+       - ansic_wshouldquote: make behavior consistent in the event of an
+         invalid multibyte sequence: return 1 to the caller so the string
+         will be $'...' quoted
+
+builtins/cd.def
+       - cd_builtin: print the right error message even if printable_filename
+         changes errno (e.g., EILSEQ)
+
+lib/sh/shquote.c
+       - sh_backslash_quote: in multibyte locales, even if is_basic does not
+         return true, backslash-quote an ASCII character that backslash_table
+         says should be quoted.  Part of fix for bug reported by Igor
+         Bogomazov <ygrex@ygrex.ru>
+
+bashline.c
+       - directory_exists: new function, dequotes the string argument, removes
+         any trailing slash, and returns true if the result is a valid
+         existing filename
+       - bash_filename_stat_hook,bash_directory_completion_hook: use
+         directory_exists instead of calling lstat/stat on the quoted
+         directory name.  Rest of fix for bug reported by Igor Bogomazov
+         <ygrex@ygrex.ru>
+
+                                  5/15
+                                  ----
+aclocal.m4
+       - BASH_CHECK_MULTIBYTE: when checking for locale_charset, add $LIBINTL
+         to $LIBS.  If we're using the included lib/intl/libintl.a, it will
+         include a version of locale_charset
+
+                                  5/17
+                                  ----
+lib/readline/bind.c
+       - sv_isrchterm: make sure we check for v[end] == 0 while in the loop
+         looking for whitespace.  Bug report and fix from Sergio Durigan
+         Junior <sergiodj@sergiodj.net>
+
+lib/sh/shmbchar.c
+       - mbstrlen,mbsmbchar: move calculation of MB_CUR_MAX out of loop;
+         calculate it once at beginning
+
+lib/sh/mbscmp.c
+       - mbscmp: move calculation of MB_CUR_MAX out of loop; calculate it once
+         at beginning
+
+lib/sh/mbscasecmp.c
+       - mbscasecmp: move calculation of MB_CUR_MAX out of loop; calculate it
+         once at beginning
+
+lib/sh/shquote.c
+       - sh_backslash_quote: move calculation of MB_CUR_MAX out of loop;
+         calculate it once at beginning
+
+lib/sh/casemod.c
+       - sh_modcase: move calculation of MB_CUR_MAX out of loop; calculate it
+         once at beginning
+
+subst.c
+       - expand_word_internal: move calculation of MB_CUR_MAX out of loops;
+         calculate it once at beginning of function (XXX should use
+         locale_mb_cur_max)
+
+                                  5/22
+                                  ----
+lib/readline/rlmbutil.h
+       - _rl_wcwidth: new function, short-circuits wcwidth calls for ASCII
+         printable characters, returns 1 for those
+       - WCWIDTH: call _rl_wcwidth instead of wcwidth
+
+lib/readline/display.c
+       - rl_redisplay: move calculation of MB_CUR_MAX out of loop; calculate
+         it once at beginning.  Report and patch from Ole Laursen
+         <ole.laursen@gmail.com>
+
+                                  5/24
+                                  ----
+lib/readline/text.c
+       - rl_insert: change to attempt to batch-insert pending typeahead (not
+         pushed input or input from a macro) that maps to rl_insert.  An
+         attempt to suppress redisplay until readline reads all typeahead --
+         pasted input, for instance.  Inspired by report from Ole Laursen
+         <ole.laursen@gmail.com>.  XXX - need to make this a bindable
+         variable; already controlled by _rl_optimize_typeahead
+
+lib/readline/rlprivate.h
+       - _rl_optimize_typeahead: extern declaration
+
+lib/readline/doc/{hstech.texi,history.3}
+       - next_history: clarify under what circumstances the history offset is
+         incremented; suggestion from Glenn Golden <gdg@zplane.com>
+
+print_cmd.c
+       - print_arith_command: should be compiled in if either DPAREN_ARITHMETIC
+         or ARITH_FOR_COMMAND is defined.  Report from Flavio Medeiros
+         <flaviomotamederios@gmail.com>
+
+flags.c
+       - change_flag: new variable verbose_flag, set when `v' flag modified;
+         sets value of echo_input_at_read correspondingly
+
+flags.h
+       - verbose_flag: new extern declaration
+
+shell.c
+       - long_options: --verbose now sets verbose_flag
+       - main: set echo_input_at_read from verbose_flag after parsing any
+         long options
+
+builtins/fc.def
+       - fc_builtin: don't unwind-protect echo_input_at_read directly; set it
+         to 1 before calling fc_execute_file as before, and reset it to value
+         of global verbose_flag using set_verbose_flag called from an
+         unwind_protect.  Report from isabella parakiss <izaberina@gmail.com>
+
+builtins/shopt.def
+       - shopt_set_debug_mode: new function, called when the extdebug shell
+         option changes.  Right now, it sets function_trace_mode when extdebug
+         is enabled, and turns off when extdebug is disabled.  The
+         documentation has always said that shopt does this.  Report from
+         Peng Yu <pengyu.ut@gmail.com>
+
+                                  5/27
+                                  ----
+findcmd.[ch]
+       - add support for EXECIGNORE shell variable, list of extglob patterns
+         that prevent matching filenames from being identified as executable
+         files
+
+variables.c
+       - EXECIGNORE: arrange for findcmd.c:setup_exec_ignore to be called when
+         $EXECIGNORE changes
+
+variables.h
+       - sv_execignore: extern declaration
+
+doc/{bash.1,bashref.texi}
+       - document EXECIGNORE variable
+
+                                  5/28
+                                  ----
+lib/readline/callback.c
+       - rl_callback_sigcleanup: new function, cleans up and unsets any state
+         rl_callback_read_char uses.  Intended to be used after a signal
+
+lib/readline/signals.c
+       - _rl_handle_signal: call rl_callback_sigcleanup on SIGINT.  Fixes bug
+         reported to python group by Martin Panter <vadmium+floss@gmail.com>
+
+lib/readline/isearch.c
+       - _rl_isearch_cleanup: now a public function so rl_callback_cleanup can
+         call it
+
+lib/readline/search.c
+       - _rl_nsearch_cleanup: now a public function so rl_callback_cleanup can
+         call it
+
+lib/readline/rlprivate.h
+       - _rl_[in]search_cleanup: extern declarations
+
+lib/readline/readline.h
+       - rl_callback_sigcleanup: new extern declaration
+
+lib/readline/doc/rltech.texi
+       - rl_callback_sigcleanup: documented
+
+lib/readline/readline.h
+       - bump readline version to 7.0 due to addition of rl_callback_sigcleanup
+
+                                  5/29
+                                  ----
+builtins/declare.def
+       - declare_internal: if we are trying to change attributes or value for
+         a nameref variable whose value points to an unset variable, make
+         sure we create a new variable whose name is the value of the nameref
+         variable. That is,
+
+               declare -n foo=bar
+               unset foo       # unsets bar
+               declare -i foo
+
+         should create a (invisible) variable named `bar' with the integer
+         attribute.  Fixes problem reported by Greg Wooledge
+         <wooledg@eeg.ccf.org>
+
+builtins/set.def
+       - unset_builtin: if we find a nameref variable when we look it up with
+         find_variable (the returned variable has a name different from what
+         we looked up), make sure we use that new name for the rest of the
+         function rather than rely on unbind_variable to do the same thing as
+         find_variable.  Fixes problem reported by Greg Wooledge
+         <wooledg@eeg.ccf.org>
+       - unset_builtin: if we try to unset a nameref variable whose value is
+         not a set variable, make sure we don't try to unset the nameref
+         itself, but rather the variable it points to.  This ensures that the
+         following always works as it should
+
+               declare -n foo=bar
+               unset foo       # unsets bar and leaves foo unchanged
+
+lib/readline/funmap.c
+       - vi-insertion-mode: make sure it maps to rl_vi_insert_mode, which is
+         actually what the `i' keybinding in vi_movement_keymap maps to.
+         Cosmetic fix from isabella parakiss <izaberina@gmail.com>
+
+                                   6/2
+                                   ---
+general.c
+       - conf_standard_path: moved get_standard_path here from command.def; made
+         public function
+
+general.h
+       - conf_standard_path: extern declaration
+
+
+                                   6/3
+                                   ---
+parse.y
+       - parse_matched_pair: make sure that command substitution constructs
+         within ${...} expansions are parsed as such using parse_comsub, so
+         the P_FIRSTCLOSE flag doesn't stop parsing if a right brace appears
+         within the comsub.  Report from Christos Zoulas <christos@zoulas.com>
+
+findcmd.c
+       - search_for_command: take two new flags for FLAGS arg: CMDSRCH_STDPATH,
+         which means use the command -p path, and CMDSRCH_TEMPENV, currently
+         unused.  Existing flag value of 1 now CMDSRCH_HASH
+       - search_for_command: don't set `path' to NULL if it wasn't found in
+         the temporary environment; we can use it later
+       - search_for_command: look for the hashed file if temp_path == 0, not
+         if we set path back to 0 (or path lookup failed)
+       - search_for_command: just call find_user_command_in_path with a
+         pathlist argument that's set depending on the flags passed
+       - find_in_path: new function, just calls find_user_command_in_path at 
+         this point
+       - search_for_command: don't put non-existent files into the hash table
+
+findcmd.h
+       - CMDSRCH_*: new flags for search_for_command
+       - find_in_path: extern declaration
+
+execute_cmd.c
+       - execute_disk_command: check for CMD_STDPATH and call search_for_command
+         with CMDSRCH_STDPATH if it's set
+
+builtins/command.def
+       - command_builtin: if -p given without -v or -V, set the CMD_STDPATH
+         flag in the simple command we construct from the rest of the
+         argument list.  This fixes the command -p cmd issue with changing
+         $PATH for the duration  of `cmd's execution reported by
+         <sdowdy@rap.ucar.edu>
+
+builtins/common.h
+       - CDESC_STDPATH: new flag for describe_command; means to use standard
+         path for command -pv or -pV
+
+builtins/command.def
+       - command_builtin: if -p given with -v or -V, pass the CDESC_STDPATH
+         flag to describe_command
+
+builtins/type.def
+       - describe_command: if given the CDESC_STDPATH flag, use find_in_path
+         with the conf_standard_path() result. Since `all' will never be on
+         with this flag, at least not yet, we can allocate and free the path
+         list.  Fixes the bug of a temporary environment value for PATH
+         preceding a `command -pv' or `command -pV' persisting when the
+         command finishes and means we use fewer unwind-protects
+
+                                   6/4
+                                   ---
+Makefile.in (plus other Makefile.ins)
+       - VPATH: remove `.' from VPATH value.  It's not needed any more and it
+         trips a GNU make 4.1 bug on Cygwin.  Report and fix from Eric Blake
+         <eblake@redhat.com>
+
+lib/readline/histfile.c
+       - history_tempfile: new function, takes history file name as template
+         and creates a temp file name including the PID
+       - history_truncate_file, history_do_write: instead of creating backup
+         and restoring it on failure, use history_tempfile to create a temp
+         file name, write to it, then rename to original history filename
+         (handling symlinks using history_restore()).  Original report and
+         patch from Russell Stuart <russell-savannah@stuart.id.au>
+
+doc/{bash.1,bashref.texi}
+       - ulimit: clarify that -c and -f are in increments of 512 bytes when
+         in posix mode.  Fix from Robin Johnson <robbat2@gentoo.org> via
+         <vapier@gentoo.org>
+
+                                   6/9
+                                   ---
+execute_cmd.c
+       - execute_in_subshell: don't call restore_default_signal for the exit
+         trap, reset_signal_handlers already does the right thing and keeps
+         the trap string around; no need to kill trap string.  Bug report
+         from Miroslav Koskar <mk@mkoskar.com>
+
+                                  6/11
+                                  ----
+nojobs.c
+       - find_proc_slot: now takes pid as an argument to avoid finding old
+         procs when pids wrap around
+       - add_pid: pass pid to find_proc_slot to avoid multiple instances of
+         the same pid in the list when pids wrap around.  Fixes bug reported
+         by Roy Keene <rkeene@rkeene.org>
+
+execute_cmd.c
+       - REAP: test for job_control == 0 also to determine whether or not
+         to call reap_dead_jobs, since shells without job control enabled
+         don't report on background process status
+
+doc/bash.1,lib/readline/doc/hsuser.texi
+       - history: clarify documentation of -a option to note that it will not
+         append the same line to the history file more than once.  Fixes
+         problem reported by Reuben Thomas <rrt@sc3d.org>
+
+                                  6/12
+                                  ----
+execute_cmd.c
+       - execute_in_subshell: don't bother decrementing subshell_level before
+         this returns; the caller will just exit.  This means that
+         $BASH_SUBSHELL will have consistent values in the subshell and any
+         subsequent exit trap.  Fixes bug reported by Miroslav Koskar
+         <mk@mkoskar.com>
+       - shell_execve: before longjmp to subshell_top_level, call reset_parser
+         to free up any input line and stack of pushed strings
+
+parse.y
+       - mk_alexpansion: if the last character of the alias is a shell
+         metacharacter, don't add a space to the string following the alias
+         value, since that will change the meaning of the command.  THIS IS
+         NOT BACKWARDS COMPATIBLE AND MAY REQUIRE REVERTING. Inspired by an
+         email message from Jilles Tjoelker <jilles@stack.nl> to austin
+         group
+
+                                  6/13
+                                  ----
+subst.c
+       - dequote_string: don't turn strings consisting of a single CTLESC
+         into empty strings; return them unmodified.  The idea is that there
+         is nothing to quote.  This means that something like
+               c=$'\001'
+               x=$c
+         results in x containing '\001' when IFS=$'\001'.  See if this will
+         cause problems by adding a debugging statement in the code
+
+                                  6/15
+                                  ----
+parse.y
+       - CHECK_FOR_RESERVED_WORD: don't return ESAC when you read `esac'
+         after a `|' while in a case pattern list (parser_state & PST_CASEPAT).
+         This is Posix grammar rule 4
+         (http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02)
+
+                                  6/16
+                                  ----
+jobs.c
+       - wait_for: make sure we queue SIGCHLD signals if a SIGCHLD trap
+         handler is running (signal_in_progress or IMPOSSIBLE_TRAP_HANDLER),
+         since we allow recursive trap invocations now
+       - wait_for: make sure we treat SIGCHLD as trapped if the trap handler
+         is set to IMPOSSIBLE_TRAP_HANDLER so we don't miss signals during
+         calls to run_sigchld_trap()
+
+trap.c
+       - run_pending_traps: since we allow recursive trap handler invocations,
+         make sure we set pending_traps[SIGCHLD] to 0 while we mark the
+         signal handler in progress (SIG_INPROGRESS) and don't reset it to 0
+         after run_sigchld_trap returns in case more SIGCHLDs have been
+         queued while it's running
+
+                                  6/22
+                                  ----
+lib/readline/readline.c
+       - _rl_dispatch_subseq: if we shadowed any function, not just self-
+         insert, bind that function to the key we shadowed and dispatch on it.
+         This preserves and dispatches off the original key, not ANYOTHERKEY,
+         and makes sure we are dispatching from a keymap with the right key
+         binding.  Fixes bug reported by Carlos Pita
+         <carlosjosepita@gmail.com>
+
+                                  6/23
+                                  ----
+bashline.c
+       - attempt_shell_completion: don't read past the end of rl_line_buffer
+         while skipping assignment statements before command names.  Fix for
+         bug reported by Hanno Böck <hanno@hboeck.de>
+
+lib/readline/parens.c
+       - _rl_enable_paren_matching: make paren matching work in vi insert
+         mode. Really, this time.  Bug report from Carlos Pita
+         <carlosjosepita@gmail.com>
+
+                                  6/29
+                                  ----
+parse.y
+       - parse_comsub: when starting to parse a word, make sure that we set
+         lex_rwlen to 0 along with lex_wlen if we are in a position where we
+         can read a reserved word.  Fixes bug reported by  Nathan Neulinger
+         <nneul@neulinger.org>
+
+                                  6/30
+                                  ----
+sig.h
+       - include <signal.h> unconditionally and rely on guards in sig.h to
+         keep from including it more than once.  Irix 6.5 defines SIG_DFL
+         in other files and defeats the test of SIG_DFL.  Fixes bug
+         reported by Klaus Ziegler <klausz@haus-gisela.de>
+
+alias.c
+       - ALIAS_HASH_BUCKETS: table size increased to 64
+
+                                   7/7
+                                   ---
+
+{jobs,nojobs}.c
+       - wait_sigint_cleanup: new function, to be called by longjmp targets
+         for wait_intr_buf. Performs any necessary cleanup of internal waitchld
+         state before going back to top level
+
+jobs.h
+       - wait_sigint_cleanup: new extern declaration
+
+builtins/wait.def
+       - wait_builtin: call wait_sigint_cleanup after longjmp back to
+         wait_intr_buf on interrupt
+
+[bash-4.4-alpha frozen]
+
+                                   7/7
+                                   ---
+bashline.c
+       - attempt_shell_completion: when skipping assignment statements, don't
+         skip past rl_point to find the word on which to perform programmable
+         completion.  Fixes bug reported by Hanno Böck <hanno@hboeck.de>
+
+                                  7/10
+                                  ----
+
+pcomplib.c
+       - compspec_copy: set the refcount on the copy to 1, since it's a freshly
+         allocated copy and there are no other pointers to it.  Fixes memory
+         leak from gen_progcomp_completions
+
+lib/readline/complete.c
+       - printable_part: if the pathname passed is just `/', just return it
+         instead of potentially reading before the `/'.  Fixes bug reported
+         by Hanno Böck <hanno@hboeck.de>
+
+                                  7/11
+                                  ----
+support/man2html.c
+       - change calls to malloc to use xmalloc; provide standard xmalloc
+         definition.  Report from Bill Parker <wp02855@gmail.com>
+
+builtins/wait.def
+       - wait_intr_flag: set to denote validity of wait_intr_buf as target
+         for longjmp; reset by WAIT_RETURN macro; should always be 0 when
+         wait_builtin returns
+
+quit.h
+       - CHECK_WAIT_INTR: now also checks wait_intr_flag to ensure valid state
+         of wait_intr_buf before sh_longjmp
+
+{jobs,nojobs}.c
+       - wait_intr_flag: extern declaration for use by CHECK_WAIT_INTR
+
+sig.c
+       - wait_intr_flag: set back to 0 every place the shell resets state after
+         a jump to top_level
+       - sigint_sighandler: only set wait_signal_received if wait_intr_flag
+         indicates that the wait builtin has correctly set wait_intr_buf.
+         Final fix for bug reported by Ondrej Oprala <ooprala@redhat.com>
+
+subst.c
+       - parameter_brace_expand: fix so that ${!vvv@} is not interpreted as
+         introducing a `@' operator, but instead retains its meaning as all
+         variables whose name begins with vvv.  Fixes bug reported by
+         konsolebox <konsolebox@gmail.com>
+
+                                  7/14
+                                  ----
+execute_cmd.c
+       - execute_connection: remove the fork optimization from and AND_AND
+         and OR_OR cases; it has trouble with `a && b && c', since the `&&'
+         is left-associative.  Putting that code here can result in unwanted
+         fork optimizations since the `b' will end up as `second' on a
+         recursive call to execute_command.  Bug reported by Mike Frysinger
+         <vapier@gentoo.org>
+
+builtins/evalstring.c
+       - optimize_fork: moved code from execute_connection to here; checks
+         whether the RHS of a && or || passes the suppress_fork() tests and
+         turns on the NO_FORK bit if so
+       - parse_and_execute: if suppress_fork() tests fail, check whether the
+         command to be executed is a connection and attempt to optimize the
+         fork for the right side using optimize_fork().  The key is dealing
+         with the entire command passed to `bash -c' or `eval'
+
+builtins/common.h
+       - optimize_fork: new extern declaration
+
+execute_cmd.c
+       - execute_command_internal: enable code put in to undo redirections
+         before exiting the shell due to `set -e' in the case of a shell
+         function that gets command-not-found or a syntax error.  Reported
+         back in May, 2014 by Mark Ferrell <major@homeonderanged.org>
+
+bashhist.c
+       - bash_history_inhibit_expansion: enable change from 1/10 that skips
+         over history expansion character in command and process
+         substitution
+
+                                  7/15
+                                  ----
+lib/readline/{history,undo}.c
+       - replace_history_data now _hs_replace_history_data
+
+                                  7/16
+                                  ----
+lib/readline/readline.c
+       - make sure _rl_to_lower doesn't ever get characters that are outside
+         of its valid range by casting arg to unsigned char
+
+lib/readline/colors.h
+       - change completion prefix color (C_PREFIX) to be the same as C_SOCK,
+         which is less likely to collide with file type colorings (magenta)
+
+lib/readline/complete.c
+       - fnprint: now takes an additional argument: the full, expanded pathname
+         corresponding to the `toprint' argument
+       - fnprint: don't zero out prefix_bytes if we're not printing the
+         ellipisis but we still want to use prefix_bytes for displaying
+         the common prefix in a color
+       - print_filename: move colored-stats display responsibility into fnprint
+       - fnprint: change so colored-prefix and colored-stats can cooperate
+         and display filenames with multiple colors: one for the prefix and
+         one for the file type.  The prefix is displayed in the prefix color
+         and the remainder of the pathname, if any, is displayed in the color
+         corresponding to the file type.  Report and suggestion from Mike
+         Frysinger <vapier@gentoo.org>
+
+                                  7/17
+                                  ----
+lib/readline/readline.[ch]
+       - rl_readline_state: now unsigned long, prepare for more than 32 states
+
+
+                                  7/18
+                                  ----
+lib/readline/history.h
+       - history_offset: now declared here, was always a global variable
+       - copy_history_entry: now declared here, part of the public interface
+       - alloc_history_entry: now declared here, part of the public interface
+
+                                  7/20
+                                  ----
+lib/readline/readline.h
+       - RL_STATE_CHARSEARCH: new state, for vi mode character search.  Was
+         previously handled by simply setting _rl_callback_func
+
+lib/readline/vi_mode.c
+       - rl_domove_motion_callback: split into two functions, remaining code
+         after _rl_dispatch call goes into new function
+         _rl_vi_domove_motion_cleanup
+       - rl_vi_char_search: set RL_STATE_CHARSEARCH
+       - rl_vi_char_search: sets `i2' member of callback data to the key used
+         to invoke the char search
+       - _rl_vi_callback_char_search: unset RL_STATE_CHARSEARCH after reading
+         the character to find
+       - _rl_vi_domove_motion_cleanup: make sure RL_STATE_VIMOTION is unset in
+         all cases where this function returns
+       - _rl_vi_domove_motion_cleanup: use `end' member of vi motion context
+         as value of rl_end to restore after adding blank at end of line in
+         rl_domove_motion_callback; avoids need to keep `old_end' and somehow
+         pass it between the two functions
+
+lib/readline/rlprivate.h
+       - _rl_vi_domove_motion_cleanup: new extern declaration
+
+lib/readline/callback.c
+       - rl_callback_read_char: handle RL_STATE_CHARSEARCH, including case
+         where char search is vi motion command for d/c/y/m and RL_STATE_VIMOTION
+         is set when this is called.  Last of set of fixes for bug reported
+         by Carlos Pita <carlosjosepita@gmail.com> with vi-mode `dty' command
+         in callback mode
+
+                                  7/21
+                                  ----
+subst.c
+       - command_substitute, process_substitute: add QUIT call in the child
+         after restoring original signal handlers to catch post-fork SIGINT
+         or terminating signal
+
+jobs.c,nojobs.c
+       - make_child: after forking, clear interrupt_state in child
+         before restoring signal mask so children get their own set of
+         interrupts
+
+                                  7/22
+                                  ----
+lib/sh/shquote.c
+       - sh_double_quote: since all uses of the return value from this function
+         are for display and not subject to subsequent expansion, we don't
+         need to protect CTLESC and CTLNUL with CTLESC.  Bug report and fix
+         from isabella parakiss <izaberina@gmail.com>
+
+parse.y
+       - decode_prompt_string: need to protect literal instances of CTLESC
+         and CTLNUL with CTLESC, even if they are not coming out of one of
+         the backslash-expansions
+
+subst.c
+       - make_internal_declare: fixed memory leak; make_internal_declare should
+         free the memory it allocates to construct the word list.  From Red
+         Hat bug 1245233; https://bugzilla.redhat.com/show_bug.cgi?id=1245233
+
+lib/readline/readline.c
+       - _rl_dispatch_subseq: when checking whether an ESC in vi insert mode
+         should be treated as part of a key sequence or as a single char,
+         make sure we are getting input from the keyboard before we check
+         _rl_input_queued().  If we are getting input from a macro, this
+         causes a needless delay.  Report from Carlos Pita
+         <carlosjosepita@gmail.com>
+
+                                  7/23
+                                  ----
+input.c
+       - save_bash_input: before checking to see whether or not a new fd has a
+         stale associated buffer, make sure that the new fd is within bounds.
+         Bug report and fix from Alexey Makhalov <makhaloff@gmail.com>
+
+
+                                  7/24
+                                  ----
+doc/{bash.1,bashref.texi}
+       - note that the `return' builtin accepts arguments beginning with `-'
+         without requiring `--'
+
+                                  7/27
+                                  ----
+examples/loadables/Makefile.in
+       - add variables and targets to support `make install'; installs
+         supported builtins in $(libdir)/bash
+
+                                  7/28
+                                  ----
+lib/readline/{readline,rlprivate}.h, lib/readline/display.c
+       - rearrange some structure members for better alignment and to reduce
+         padding.  Fix from <git-dpa@aegee.org>
+
+tests/run-*
+       - use BASH_TSTOUT instead of hardcoded /tmp/xx as output file
+
+trap.[ch]
+       - maybe_set_error_trap: set a trap for the ERR trap if it is not already
+         trapped; similar to maybe_set_debug_trap back from 4/10
+
+lib/malloc/malloc.c
+       - internal_free: make sure `ubytes' is initialized if MALLOC_WATCH is
+         defined and we'll be passing it to _malloc_ckwatch.  Report from
+         Flavio Medeiros <flaviomotamederios@gmail.com>
+
+execute_cmd.c
+       - execute_function: use maybe_set_error_trap in the same way as
+         maybe_set_debug_trap.  Fixes bug reported by David Waddell
+         <David.Waddell@owmobility.com>
+
+                                  7/29
+                                  ----
+jobs.c
+       - wait_for: no longer need to call job_signal_status when checking
+         whether a comsub shell reaped a child that died due to SIGINT; code
+         now uses child_caught_sigint
+
+                                  7/30
+                                  ----
+builtins/exec.def
+       - exec_builtin: after call to restore_original_signals, need to call
+         default_tty_job_signals to undo changes done by initialize_job_signals.
+         Fix for problem reported by Andreas Schwab <schwab@suse.de>
+
+doc/{bash.1,bashref.texi}
+       - clarify definition of metacharacter to explicitly include newline;
+         prompted by report from George Gallo <georgeggallo@gmail.com>
+
+                                   8/3
+                                   ---
+lib/readline/search.c
+       - _rl_free_history_entry: should be void, not int.  Report from
+         Dilyan Palauzov <dilyan.palauzov@aegee.org>
+
+general.h
+       - sh_load_func_t, sh_unload_func_t: new function pointer types, used by
+         enable for load and unload hook functions
+
+builtins/enable.def
+       - dyn_load_builtin: attempt to execute a function named
+         BUILTIN_builtin_load, where BUILTIN is the name of the command being
+         loaded.  If that function returns 0, the load fails
+       - dyn_unload_builtin: attempt to execute a function named
+         BUILTIN_builtin_unload, where BUILTIN is the name of the command
+         being unloaded.  It offers a dynamic builtin a way to clean up after
+         itself.  Inspired by suggestion from Piotr Grzybowski
+         <narsil.pl@gmail.com> in response to a bug report from isabella
+         parakiss <izaberina@gmail.com>
+
+                                   8/6
+                                   ---
+lib/readline/colors.[ch]
+       - _rl_print_color_indicator: now takes `const char *' argument
+
+lib/readline/complete.c
+       - colored_stat_start: now takes `const char *' argument
+
+lib/malloc/table.h
+       - ma_table_t: `file' member is now `const char *'
+
+lib/malloc/table.c
+       - mlocation_register_alloc: make sure variable assigned to `file' in
+         ma_table_t is of type `const char *'.  Fixes from Dilyan Palauzov
+         <dilyan.palauzov@aegee.org>
+
+lib/termcap/termcap.[ch]
+       - tputs: should return int instead of void
+
+lib/readline/readline.h
+       - RL_STATE_DONE: correct value, avoid collision
+
+lib/readline/vi_mode.c
+       - _rl_vi_redoing: now global, added _rl_ prefix to `vi_redoing'
+
+lib/readline/readline.c
+       - _rl_subseq_result: call _rl_dispatch_subseq instead of rl_dispatch to
+         avoid changing _rl_dispatching_keymap
+       - _rl_subseq_result: in the -2 case, set _rl_dispatching_keymap to the
+         map passed as an argument.  Without this, vi mode doesn't call
+         rl_vi_set_last when it should
+       - _rl_dispatch_subseq: if redoing a vi mode command with `.'
+         (_rl_vi_redoing != 0) in callback mode and we're indirecting into
+         another keymap that has shadowed the key corresponding to the command
+         we are redoing, just call _rl_subseq_result immediately: vi redo
+         doesn't need to read any additional input, and rl_vi_redo assumes
+         that a single call to rl_dispatch is sufficient.  Fixes bug reported
+         by Carlos Pita <carlosjosepita@gmail.com>
+
+                                   8/7
+                                   ---
+subst.c
+       - parameter_brace_expand: if a substitution (parameter expansion) error
+         occurs, and shell_compatibility_level is <= 43, return expansion error
+         as in all previous versions.  If shell_compatibility_level is > 43,
+         a posix-mode non-interactive shell will consider this a fatal error.
+         Problem reported by Christian Neukirchen <chneukirchen@gmail.com>
+
+doc/bashref.texi
+       - documented that word expansion errors cause fatal errors in posix mode
+         non-interactive shells
+
+                                   8/8
+                                   ---
+subst.h
+       - SD_COMPLETE: skip_to_delim being called as part of word completion
+       - SX_COMPLETE: one of the string_extract functions being called as
+         part of word completion
+
+bashline.c
+       - find_cmd_start,find_cmd_end,find_cmd_name: call skip_to_delim with
+         SD_COMPLETE flag
+
+subst.c
+       - skip_double_quoted: takes new flags argument; changed callers
+       - skip_double_quoted: if flags argument includes SX_COMPLETE, pass it
+         to extract_command_subst
+       - extract_command_subst: if flags&SX_COMPLETE, call
+         extract_delimited_string instead of xparse_dolparen, since completion
+         may call this for unterminated command substitutions.  Fixes
+         (imperfectly) bug reported by Ingo Ruhnke <grumbel@gmail.com>
+       - skip_to_delim: if passed the SD_COMPLETE flag, pass the SX_COMPLETE
+         flag to skip_double_quoted 
+       - char_is_quoted: pass SX_COMPLETE flag to skip_double_quoted
+       - unclosed_pair: pass SX_COMPLETE flag to skip_double_quoted
+
+                                   8/9
+                                   ---
+execute_cmd.c
+       - time_command: catch longjmps to top_level and print command timing
+         statistics even after a jump to top_level.  Fixes issue reported by
+         Sam Watkins <sam@nipl.net>
+
+                                  8/10
+                                  ----
+config-top.h
+       - OPENLOG_OPTS: if SYSLOG_HISTORY is defined, define to LOG_PID, so
+         each message is tagged with the pid
+
+bashhist.h
+       - bash_syslog_history: the first time it's called, call openlog with
+         OPENLOG_OPTS and SYSLOG_FACILITY
+
+                                  8/11
+                                  ----
+doc/{bash.1,bashref.texi}
+       - GROUPS,FUNCNAME: change description to note that assignments are
+         silently ignored, but do not return an error (which would constitute
+         an assignment error and cause posix mode shells to abort).  Problem
+         pointed out by Grzegorz Bajson <gbajson@gmail.com>
+
+                                  8/12
+                                  ----
+subst.c
+       - parameter_brace_expand_indir: if the value of the indirectly expanded
+         variable isn't something that the shell would expand if it were inside
+         ${}, error out right away before calling parameter_brace_expand_word.
+         Fixes problem reported by isabella parakiss <izaberina@gmail.com>
+       - parameter_brace_expand: handle returning &expand_wdesc_error or
+         &expand_wdesc_fatal from parameter_brace_expand_indir in case it does
+         that someday
+
+                                  8/13
+                                  ----
+jobs.c
+       - {save,restore}_pipeline: saved_pipeline now a linked list of pipelines,
+         new ones allocated in save_pipeline and freed in restore_pipeline.
+         This allow multiple nested calls to save_pipeline (e.g., in traps
+         and then in process substitution).  Fix for bug reported by isabella
+         parakiss <izaberina@gmail.com>
+
+print_cmd.c
+       - named_function_string: if printing a function with the same name as a
+         reserved word, add the `function ' keyword before the name to avoid
+         parsing problems when trying to reuse it as input.  Fix for bug
+         reported by isabella parakiss <izaberina@gmail.com>
+
+                                  8/14
+                                  ----
+lib/readline/text.c
+       - rl_insert: when optimizing typeahead, make sure we set rl_last_func
+         ourselves if we set pending input, since the mainline code path
+         won't set rl_last_func if input is pending.  Fixes bug reported by
+         Hiroo Hayashi <hiroo.hayashi@computer.org>
+
+                                  8/15
+                                  ----
+builtins/type.def
+       - describe_command: if using the short description (CDESC_SHORTDESC) in
+         posix mode, describe posix special builtins as such.  Requested by
+         Stephane Chazelas <stephane.chazelas@gmail.com>
+
+builtins/enable.def
+       - BASH_LOADABLES_PATH: a colon-separated list of directories where bash
+         looks for loadable builtins specified as arguments to `enable -f'
+
+doc/{bash.1,bashref.texi}
+       - BASH_LOADABLES_PATH: document new shell variable
+
+configure.ac,Makefile.in,builtins/Makefile.in
+       - loadablesdir: set in configure, substitute into Makefiles.  Reserved
+         for future use
+
+                                  8/18
+                                  ----
+subst.c
+       - shell_expand_word_list: if make_internal_declare fails, make sure to
+         propagate that error return back and make the assignment statement
+         fail. Fixes seg fault reported by Sergey Tselikh <stselikh@gmail.com>
+
+                                  8/20
+                                  ----
+builtins/declare.def
+       - declare_internal: made a slight tweak to the warning message about
+         quoted compound assignments by printing it only if the array (indexed
+         or assoc) does not already exist
+
+                                  8/21
+                                  ----
+braces.c
+       - mkseq: call strvec_dispose before throw_to_top_level if we saw SIGINT
+         to avoid a memory leak
+
+trap.c
+       - maybe_set_return_trap: set the RETURN trap to string if it's not
+         already trapped, in the same way as the debug and error traps
+
+execute_cmd.c
+       - execute_function: use maybe_set_return_trap to allow functions to set
+         return traps that persist across calls even if function tracing is
+         enabled
+
+lib/readline/input.c
+       - rl_gather_tyi: make sure errno reset to 0 after select call, for
+         ioctl and read
+       - rl_gather_tyi: if read returns -1/EIO, return -1
+       - rl_read_key: if rl_gather_tyi returns -1/EIO, return READERR if in
+         RL_STATE_READCMD (reading command in readline_internal_char), EOF
+         if not (like rl_getc). Continue to return '\n' on other errors;
+         rl_done = 1 in any case.  Fix for issue reported by
+         Lubomir Rintel <lkundrak@v3.sk>
+
+lib/readline/{misc,text,vi_mode}.c
+       - fix return values from rl_read_key to handle < 0
+
+                                  8/22
+                                  ----
+
+parse.y
+       - parsing_redirection: macro that expands to true if the last read
+         token (always passed as an argument) is a redirection token that
+         will leave us reading a word that's the target of the redirection
+       - command_token_position: make sure that even if the parser state
+         indicates we are reading a simple command (PST_REDIRLIST), we do
+         not perform alias expansion on a WORD that is part of a redirection,
+         using parsing_redirection() to do so.  Fixes but reported to Red Hat
+         by Robert Alm Nilsson <rorialni@gmail.com>
+         https://bugzilla.redhat.com/show_bug.cgi?id=795795
+
+builtins/declare.def
+       - declare_internal: only print the warning now if the variable is not
+         already an array or if we are not creating an array with -a or -A,
+         cuts down the spurious warnings
+       - declare_internal: even if the rhs of the assignment looks like a
+         compound array, if we're not assigning to an existing array or we're
+         not creating an array, make it an array subscript assignment.  This
+         means things like declare a[1]='(foo)' and a[1]='(foo)' behave
+         identically
+
+builtins/help.def
+       - wdispcolumn: change use of displen and add new dispchars variable to
+         deal with locales where each wide character does not take up one
+         column position.  Fix for bug reported by Mingye (Arthur) Wang
+         <arthur200126@hotmail.com>
+
+                                  8/23
+                                  ----
+sig.c
+       - sigint_sighandler: if we get a SIGINT while this_shell_builtin ==
+         wait_builtin, perform the special handling only if wait_intr_flag
+         is non-zero, don't just use it to set wait_sigint_received.  This
+         makes sure we run bashline_set_event_hook.  Fixes bug reported by
+         isabella parakiss <izaberina@gmail.com>
+
+                                  8/25
+                                  ----
+subst.h
+       - SD_HISTEXP: new flag for skip_to_delim, indicates we are looking for
+         the history expansion character (special double quote handling)
+       - skip_to_delim: handle SD_HISTEXP flag, changes double quote handling
+         to be similar to history library: don't call skip_double_quote, make
+         sure single quotes aren't special in double quotes, but continue to
+         skip over $(), ${}, and other similar constructs
+
+                                  8/27
+                                  ----
+support/bash.pc.in
+       - new file, pkgconfig template for bash, installed to support nascent
+         loadable builtins dev environment
+
+examples/loadables/Makefile.inc
+       - new file, example Makefile with correct definitions for loadable
+         builtin development
+
+configure.ac
+       - headersdir: directory where headers get installed to support loadable
+         builtin development
+       - examples/loadables/Makefile.inc, support/bash.pc: create 
+
+Makefile.in
+       - INSTALLED_HEADERS, INSTALLED_BUILTINS_HEADERS, INSTALLED_INCFILES,
+         CREATED_HEADERS: new variables holding names of include files to
+         install into $(headersdir) for loadable builtin development
+       - install-headers,install-headers-dirs: new targets to support
+         installing headers into $(headersdir) and subdirectories for loadable
+         builtin development
+       - uninstall-headers: target to uninistall headers in $(headersdir)
+       - uninstall: call uninstall-headers whether or not install-headers
+         was done; add uninstall in examples/loadables
+       - install: add install in examples/loadables
+       - clean: add clean in examples/loadables
+
+examples/loadables/Makefile.in
+       - install-supported, install-unsupported: new targets, make install
+         chooses one based on $(SHOBJ_STATUS)
+       - install-supported: now cds to the top level build directory and
+         installs the header files
+       - install-supported: now installs Makefile.inc to $(loadablesdir) as
+         an example
+       - uninstall-supported,uninistall-unsupported: uninstall targets,
+         make uninstall chooses one based on $(SHOBJ_STATUS)
+
+                                  8/31
+                                  ----
+lib/glob/Makefile.in
+       - CPPFLAGS: move after ${INCLUDES} so library-specific include paths
+         take precedence.  This is what the other parts of the shell do.
+         Report from Poor Yorick <org.gnu.lists.bug-bash@pooryorick.com>
+
+builtins/read.def
+       - reset_alarm: cancel alarm before restoring signal handler to avoid
+         possible race condition.  Report and fix from Oleg Popov
+         <dev-random@mail.ru>
+
+subst.c
+       - string_extract_verbatim: if SEPARATORS is "'", don't short-circuit
+         to string_extract_single_quoted unless the SX_NOCTLESC flag is set.
+         Callers expect this function to honor CTLESC, even to quote a single
+         quote.  Fixes bug reported by isabella parakiss <izaberina@gmail.com>
+         and several others
+
+                                   9/2
+                                   ---
+include/chartypes.h
+       - TOCTRL: handle '?' by special-casing it to 0x7f.  Fixes a problem
+         with $'\c?' reported by Helmut Karlowski <helmut.karlowski@ish.de>
+
+redir.c
+       - write_here_string: don't word-split the here string document.  The
+         bash documentation has always said this doesn't happen, even though
+         bash has done so for years, and other shells that implement here-
+         strings don't perform any word splitting.  The practical effect is
+         that sequences of IFS characters are collapsed to spaces.  Fixes
+         bug reported by Clint Hepner <clint.hepner@gmail.com>
+
+                                   9/3
+                                   ---
+doc/{bash.1,bashref.texi}
+       - add \? to the list of backslash escapes expanded by $'...' ANSI-C
+         quoting.  It was expanded but not documented
+
+lib/readline/util.c
+       - _rl_audit_tty: updated from Red Hat patch
+
+lib/readline/readline.c
+       - HAVE_DECL_AUDIT_USER_TTY: correct #define check
+
+                                  9/13
+                                  ----
+shell.c
+       - read_from_stdin: make sure value set to 1 appropriately if the shell
+         is reading from standard input, as Posix seems to specify (?)
+
+lib/readline/kill.c
+       - _rl_copy_to_kill_ring: don't assume that rl_kill_ring has been
+         allocated if _rl_last_command_was_kill is non-zero; make sure it's
+         non-null before indexing into it
+
+                                  9/15
+                                  ----
+variables.c
+       - initialize_shell_variables: cope with a NULL env pointer.  Fixes bug
+         reported by ziyunfei <446240525@qq.com>
+
+                                  9/16
+                                  ----
+builtins/exec.def
+       - exec_builtin: if -c is supplied, pass an empty array instead of a NULL
+         pointer to shell_execve
+
+variables.c
+       - set_pwd: only believe $PWD if it begins with a slash; try to
+         canonicalize it and set it to physical path if canonicalization fails.
+         Reported by ziyunfei <446240525@qq.com>
+
+                                  9/17
+                                  ----
+subst.c
+       - do_compound_assignment: make sure to dispose of word list generated
+         by expand_compound_array_assignment; fixes memory leak reported in
+         https://bugzilla.redhat.com/show_bug.cgi?id=1264101
+
+variables.c
+       - adjust_shell_level: clamp the value of shell_level at 1000 and reset
+         there, instead of > 1000, since the itos replacement code doesn't
+         handle the value 1000.  Fixes bug reported by ziyunfei
+         <446240525@qq.com>
+
+shell.h,parse.y
+       - save_parser_state,restore_parser_state: now save and restore
+         redir_stack, short-circuiting if need_here_doc == 0.  If we save a
+         non-zero value for need_here_doc, we have to make sure there is
+         something valid for gather_here_documents to work on.  Fixes bug
+         reported by Brian Carpenter <brian.carpenter@gmail.com>
+
+                                  9/18
+                                  ----
+array.c
+       - array_to_assign: use ansic_shouldquote to check whether each element
+         value contains non-printable characters and use ansic_quote to
+         generate the value instead of using sh_double_quote unconditionally
+
+assoc.c
+       - assoc_to_assign: if either the key or the value of an associative
+         array element contains non-printable characters (ansic_shouldquote
+         returns true), use ansic_quote to quote them instead of using double
+         quotes unconditionally
+
+                                  9/19
+                                  ----
+subst.c
+       - pat_subst: handle REP being NULL.  Fixes bug reported by Brian
+         Carpenter <brian.carpenter@gmail.com>
+
+builtins/evalstring.c
+       - parse_string: if we get a longjmp to top_level with DISCARD as the
+         code (in which case we are going to go on), return -DISCARD to our
+         caller (always xparse_dolparen) after doing our own cleanup instead
+         of calling jump_to_top_level
+
+parse.y
+       - xparse_dolparen: if parse_string returns < 0, do the appropriate
+         cleanup and then jump_to_top_level with the negative of the return
+         value.  This allows us to do the appropriate parser cleanup in
+         case we're not going to exit the shell.  Fixes bug reported by Brian
+         Carpenter <brian.carpenter@gmail.com>
+
+subst.c
+       - extract_delimited_string: if a recursive call to one of the extract_
+         functions or a call to ADVANCE_CHAR leaves i past the end of the
+         string, cut the loop off at the end of the string.  Fixes bug
+         reported by Brian Carpenter <brian.carpenter@gmail.com>
+
+                                  9/20
+                                  ----
+subst.c
+       - get_var_and_type: return appropriate values if variable indirection
+         results in a NULL variable.  Fixes bug reported by Brian Carpenter
+         <brian.carpenter@gmail.com>
+
+lib/readline/history.c
+       - history_get_time: handle strtol overflows caused by malicious
+         modifications to timestamps in the history file.  Fixes issue
+         reported by rens@endoria.net
+
+                                  9/21
+                                  ----
+lib/readline/rlconf.h
+       - ENABLE_AUDIT_TTY_SUPPORT: now undefined (off) by default
+
+                                  9/24
+                                  ----
+jobs.c
+       - waitchld: if we get a SIGINT while waiting for a child to exit, but
+         the kernel doesn't interrupt the waitpid(2) call, assume the child
+         caught SIGINT if it exited for some reason other than SIGINT.  Fix
+         suggested by Stephane Chazelas <stephane.chazelas@gmail.com>
+
+input.c
+       - make_buffered_stream: use B_TEXT in buffered stream flags instead
+         of (typo) O_TEXT.  Report and fix from Eric Blake <eblake@redhat.com>
+
+                                  9/27
+                                  ----
+execute_cmd.c
+       - shell_execve: call reset_parser before calling initialize_subshell,
+         which calls delete_all_aliases.  reset_parser wants to free the
+         pushed string list, which has pointers back into the alias table
+         (use after free)
+       - execute_simple_command: if we fork for an async command, make sure
+         the child process increments shell_level before performing any
+         word expansions, so $BASH_SUBSHELL is incremented.  Fixes issue
+         reported by ziyunfei <446240525@qq.com>
+
+                                  10/1
+                                  ----
+builtins/kill.def
+       - kill_builtin: make -L equivalent to -l for compatibility with other
+         (Linux) versions of kill
+
+doc/{bash.1,bashref.texi}
+       - kill: document new `-L' option
+
+                                  10/2
+                                  ----
+[bash-4.4-beta frozen]
+
+                                  10/5
+                                  ----
+doc/{bash.1,bashref.texi}
+       - LC_TIME: document that the shell recognizes it and calls setlocale
+         when it changes; and that the shell uses it for time formatting
+
+                                  10/6
+                                  ----
+subst.c
+       - skip_single_quoted: now takes an additional `flags' argument, like
+         skip_double_quoted; changed callers
+       - skip_single_quoted: now pays attention to SX_COMPLETE flag, allows
+         backslash to escape single quote, like $'...' allows
+       - skip_to_delim: added case where we are completing and we are
+         skipping over a $'...' string to call skip_single_quoted with
+         SX_COMPLETE flag to allow backslash to quote single quote.  Fixes
+         bug reported by Daniel Colascione <dancol@dancol.org>
+       - char_is_quoted: make analogous changes to handle $'...' so we can
+         accommodate $'ab \' cd'
+
+                                  10/11
+                                  -----
+subst.c,bashjmp.h
+       - no_longjmp_on_fatal_error: now global so other parts of the shell can
+         use it
+
+arrayfunc.c
+       - expand_array_index: if no_longjmp_on_fatal_error is non-zero, don't
+         longjmp to top_level, just return 0.  Fixes bug reported by
+         isabella parakiss <izaberina@gmail.com>
+
+subst.c
+       - CQ_RETURN: restore old value of no_longjmp_on_fatal_error (oldjmp);
+         make sure all callers (skip_matched_pair, skip_to_delim,
+         char_is_quoted) save no_longjmp_on_fatal_error to oldjmp before
+         setting it to 1
+
+expr.c
+       - expr_streval: if longjmping after an unbound variable error, jump
+         back to expr toplevel (evalbuf) if no_longjmp_on_fatal_error is set
+         in an interactive shell
+
+variables.c
+       - push_func_var: if pushing an array variable, such as when a variable
+         in the temporary environment is promoted to an array by mapfile when
+         the shell is in posix mode (so variable assignments preceding special
+         builtins or shell functions persist in the shell environment after
+         the builtin returns), make sure to copy the array or hash table so
+         the variable is duplicated correctly.  Fixes seg fault reported by
+         Linda Walsh <bash@tlinx.org>
+
+                                  10/13
+                                  -----
+variables.c
+       - initialize_shell_variables: add call to sv_shcompat, so BASH_COMPAT
+         can be set in the initial environment
+
+execute_cmd.c
+       - execute_function: set loop_level to 0 only if shell_compatibility_level
+         is greater than bash-4.3; this was kind of an incompatible change.
+         Report from Carlos Pita <carolosjosepita@gmail.com>
+
+COMPAT,doc/{bash.1,bashref.texi}
+       - compat43: added loop_level changes to description
+
+                                  10/15
+                                  -----
+lib/sh/casemod.c,lib/readline/display.c
+       - make sure mb_cur_max variable is defined outside of HANDLE_MULTIBYTE
+         if it's used outside HANDLE_MULTIBYTE.  Fixes from Greg Wooledge
+         <wooledg@eeg.ccf.org>
+
+support/Makefile.in
+       - bash.pc: remove as part of distclean, not clean.  Report from Andreas
+         Schwab <schwab@linux-m68k.org>
+
+                                  10/17
+                                  -----
+subst.c
+       - array_var_assignment: make sure to call quote_string or quote_escapes
+         on the assignment string, so spaces in the assignment survive word
+         splitting.  Fixes bug reported by isabella parakiss
+         <izaberina@gmail.com>
+
+                                  10/20
+                                  -----
+doc/{bash.1,bashref.texi}
+       - word splitting: make sure that newline is listed as one of the IFS
+         whitespace characters.  Fixes omission reported by ziyunfei
+         <446240525@qq.com>
+
+lib/readline/histfile.c
+       - history_do_write: make sure that we only create and use the tempfile
+         if the history file exists and is a regular file.  Reported several
+         times, most recent check the result of a report from
+         <marko.teiste@gmail.com>
+
+                                  10/22
+                                  -----
+jobs.c
+       - delete_all_jobs: if running_only == 0, we are eventually going to
+         clear the bgpids list, so don't bother to add pids to it in
+         delete_job (call with DEL_NOBGPID flag if running_only == 0)
+
+                                  10/24
+                                  -----
+jobs.[ch]
+       - bgpids: new implementation from a patch from John Fremlin
+         <john@fb.com>, uses an array for the list of the last CHILD_MAX
+         terminated background pids, and a separate hash table to search it.
+         The storage can be freed as a unit, and the size of the hash table
+         (currently 4096) is independent of the size of the bgpids table
+
+subst.c
+       - inherit_errexit: new variable to control whether or not command
+         substitution inherits the -e (errexit) option.  Disabled by default
+
+general.c
+       - posix_initialize: set inherit_errexit = 1 when Posix mode is enabled
+
+builtins/shopt.def
+       - inherit_errexit: new shell option, tracks value of inherit_errexit,
+         allows command substitution to inherit the setting of errexit without
+         posix mode.  From a request and patch submitted by Christoph Gysin
+         <christoph.gysin@gmail.com>
+
+{version,version2}.c
+       - use #if HAVE_SNPRINTF instead of #if defined in case configure
+         decides to #define it to 0.  Fixes problem reported by Klaus Ziegler
+         <klausz@haus-gisela.de>
+
+configure.ac
+       - when checking for sys/resource.h, make sure to include <sys/time.h>
+         for the benefit of both old systems that require it and new versions
+         of autoconf that require a header file to compile to report its
+         presence.  Reported by Klaus Ziegler <klausz@haus-gisela.de>
+
+                                  10/26
+                                  -----
+subst.h
+       - SD_ARITHEXP: new flag value for skip_to_delim, supports parsing
+         arithmetic expressions in parameter expansions
+
+subst.c
+       - skip_to_delim: handle SD_ARITHEXP flag by skipping parentheses for
+         subexpressions and allowing ?: expression to not terminate an
+         arithmetic expression delimited by `:'
+       - skiparith: just call skip_to_delim with the SD_ARITHEXP option and
+         the right delimiter string and return the right result.  Fixes bug
+         reported by <grishalevit@gmail.com>
+
+include/shmbchar.h
+       - strip out everything except what is needed to support is_basic and
+         similar functions, since the mbchar_t typedef apparently conflicts
+         with some AIX-specific type definition.  Problem reported by
+         Michael Felt <aixtools@gmail.com>
+
+                                  10/27
+                                  -----
+builtins/{set,ulimit}.def
+       - {set,ulimit}_builtin: make sure that --help is treated the same as
+         -? and prints a message and returns.  Fixes bug reported by ziyunfei
+         <446240525@qq.com>
+
+builtins/*.def
+       - make sure to consistently use builtin_help() instead of mix of that
+         function and builtin_usage()
+
+                                  10/29
+                                  -----
+doc/{bash.1,bashref.texi}
+       - BASH_CMDS, BASH_ALIASES: note that removing elements from these
+         array variables is not currently reflected in the command hash
+         table and alias list, respectively.  Reported by isabella parakiss
+         <izaberina@gmail.com>
+
+                                  10/30
+                                  -----
+eval.c
+       - reader_loop: if PS0 is set in an interactive shell, expand and
+         display it after reading a (complete) command but before executing
+         it.  This differs from the DEBUG trap because the DEBUG trap is
+         executed once for each simple command (and some others, like each
+         time through a for loop).  From a patch submitted by Dan Stromberg
+         <dstromberglists@gmail.com>
+
+parse.y
+       - prompt_again: set ps0_prompt from $PS0 in an interactive shell
+
+doc/{bash.1,bashref.texi}
+       - PS0: document new prompt string
+
+                                  11/3
+                                  ----
+subst.c
+       - cond_expand_node: if special > 0, remove quoted nulls from the word
+         list, since no word splitting takes place.  Fixes bug reported by
+         Corentin Peuvrel <cpeuvrel@pom-monitoring.com>
+
+                                  11/4
+                                  ----
+doc/{bash.1,builtins.texi}
+       - inherit_errexit: add to shopt description; modify Posix mode
+         description
+
+                                  11/9
+                                  ----
+lib/readline/util.c
+       - rl_tilde_expand: fix out-of-bounds read caused when this function
+         is invoked with rl_point == 0.  Bug reported by Hanno Böck
+         <hanno@hboeck.de>
+
+                                  11/11
+                                  -----
+{nojobs,jobs}.c
+       - get_original_tty_job_signals: force the original signal disposition
+         for SIGTSTP/SIGTTIN/SIGTTOU to SIG_DFL in interactive shells.  This
+         will force child processes to get SIG_DFL even if the shell is
+         started with those signals ignored.  From a bug report from
+         Keith Thompson <keithsthompson@gmail.com>
+
+                                  11/13
+                                  -----
+make_cmd.c
+       - make_function_def: if a function is being defined without a source
+         file, and the shell has not been initialized, assume that the
+         function is being imported from the environment and set the
+         source_file struct member to "environment".  Set to "main" if the
+         shell has been initialized.  Fixes bug reported on savannah by
+         Arno-Can Uestuensoez
+         https://savannah.gnu.org/support/index.php?108903
+
+subst.c
+       - skip_to_delim: if the shell is in posix mode (posixly_correct != 0)
+         and performing history expansion ((flags & SD_HISTEXP) != 0), allow
+         double quotes to quote the history expansion character.  TENTATIVE
+         CHANGE, inspired by
+         https://savannah.gnu.org/support/index.php?108491
+
+                                  11/14
+                                  -----
+jobs.c
+       - wait_for: modify change from 4/23 to only give the terminal to
+         shell_pgrp if not running in the background and subshell_environment
+         indicates we're not in a pipeline and not an async command.  Fixes
+         bug reported by konsolebox <konsolebox@gmail.com>
+
+                                  11/16
+                                  -----
+doc/{bash.1,bashref.texi}
+       - document new posix-mode behavior of not giving ! special meaning
+         within double quotes, even if histexpand is enabled
+
+                                  11/17
+                                  -----
+builtins/evalfile.c
+       - fc_execute_file: pass FEVAL_BUILTIN flag to _evalfile so it returns
+         the value of parse_and_execute after executing the commands in the
+         file.  Fixes bug reported by Chris Marusich <cmmarusich@gmail.com>
+
+                                  11/20
+                                  -----
+subst.c
+       - process_substitute: don't unconditionally set pipeline_pgrp to
+         shell_pgrp; do that only if pipeline_pgrp == 0 (we haven't forked
+         yet) or if we know we haven't forked for a command, a pipeline,
+         or an async command.  Fixes bug reported by
+         <gnu.20.drkshadow@spamgourmet.com>
+         as https://savannah.gnu.org/support/index.php?108593
+
+                                  11/24
+                                  -----
+variables.c
+       - set_pwd: inherit the value of OLDPWD from the initial environment
+         if it names a directory.  From a report from John Wiersba
+         <jrw32982@yahoo.com>
+
+builtins/set.def
+       - -T: fix help text to note that the DEBUG and RETURN traps are both
+         inherited if this is set.  Report from Grisha Levin
+         <grishalevit@gmail.com>
+
+doc/{bash.1,bashref.texi}
+       - HISTIGNORE,GLOBIGNORE: note that the pattern matching is subject to
+         the setting of the `extglob' variable.  Clarification raised by
+         Aharon Robbins <arnold@skeeve.com>
+
+builtins/jobs.def,doc/{bash.1,bashref.texi}
+       - disown: add text to synopsis making it clear that disown takes a
+         pid argument.  From a report from Matthew Stanfield
+         <matthew@i-dig.info>
+
+findcmd.c,doc/{bash.1,bashref.texi}
+       - EXECIGNORE: change pattern matching to use FNMATCH_EXTFLAG like other
+         IGNORE variables.  From a report from Aharon Robbins <arnold@skeeve.com>
+
+trap.c
+       - _run_trap_internal: make sure to catch and use return values supplied
+         as arguments to `return'; instead of just catching return, make sure
+         we use return_catch_value as well.  Fixes bug reported by
+         Grisha Levit <grishalevit@gmail.com>, affects RETURN, DEBUG, ERROR
+         traps
+
+                                  11/30
+                                  -----
+lib/readline/display.c
+       - rl_redisplay: fix code that deals with prompts that contain
+         multibyte characters whose physical length is longer than the screen
+         width (so the prompt line wraps) to deal with invisible characters
+         in the prompt and set the inv_lbreaks offsets correctly and set
+         lpos appropriately
+       - _rl_move_cursor_relative: always called with either visible line or
+         invisible line. Decide whether we are being called with the invisible
+         line (or a portion thereof) as the DATA argument; make sure to account
+         for invisible characters in the last line of the prompt by offsetting
+         the desired buffer offset (NEW) by where DATA starts in invisible line
+         and checking whether that is past the last invisible character in
+         the prompt
+       - _rl_move_cursor_relative: do the same for the visible line by using
+         the visible line lbreaks array instead of _rl_screenwidth, since
+         that fails in the presence of multibyte characters (buffer offset
+         vs. physical screen position).  These fix bug with prompts with
+         multibyte characters and invisible characters that are longer than
+         the screen width reported by Ryo Furue <ryofurue@gmail.com>
+
+                                  12/1
+                                  ----
+parse.y,make_cmd.c
+       - here_doc_first_line: new variable, set to non-zero to indicate the
+         first line of possibly multiple here documents associated with the
+         current command.  Set in parse.y:gather_here_documents() before
+         reading any here documents, set to 0 after reading the first line
+         of any here document in make_cmd.c:make_here_document().
+
+parse.y
+       - history_delimiting_chars: if parser_state indicates we are reading
+         a here document, don't use current_command_line_count to see whether
+         or not we're on the first line of a here document -- it can be fooled
+         by multi-line commands (or even backslash-escaped newlines).  Use
+         here_doc_first_line to check that directly.  Fixes bug reported by
+         Geoffrey Allott <geoffrey@allott.email>
+
+shell.h,parse.y
+       - save and restore here_doc_first_line as part of the shell's parser
+         state
+
+lib/sh/tmpfile.c
+       - use ANSI-C rand() interface if random() not available.  Fixes problem
+         with linking on (ancient) Solaris 2.4 reported by Klaus Ziegler
+         <klausz@haus-gisela.de>
+
+                                  12/2
+                                  ----
+aclocal.m4
+       - RL_LIB_READLINE_VERSION: if cross-compiling, assume current version
+         of readline if cross-compiling bash while using an external readline
+         library.  Fix from Barry Davis <barry_davis@stormagic.com>
+
+execute_cmd.c
+       - execute_builtin: save and restore value of builtin_ignoring_errexit
+         instead of assuming we can set it back to 0 -- the ignore-errexit
+         cases might be nested
+       - execute_builtin: after a builtin executes and eval_unwind is set,
+         set exit_immediately_on_error to 0 if builtin_ignoring_errexit is
+         set, and back to the value of errexit otherwise, just like the
+         code that sets -e does.  Fixes short-circuiting bug reported by
+         Marcin Swigon <swigon.mar@gmail.com>
+
+                                  12/5
+                                  ----
+builtins/setattr.def
+       - set_or_show_attributes: instead of using a fixed string for the
+         options argument to `declare', which results in export adding the
+         readonly attribute, build the option string dynamically like in
+         subst.c:shell_expand_word_list()
+       - set_or_show_attributes: don't add the -r option to declare if the
+         attribute passed as an argument doesn't include att_readonly; add
+         -x if the attribute includes att_exported
+       - set_or_show_attributes: add the -g option to declare so readonly
+         and export in functions that go through this code path don't create
+         local variables.  Part of fix for bug reported by ziyunfei
+         <446240525@qq.com>
+
+execute_cmd.c
+       - make_internal_declare: if we have an assignment builtin that isn't
+         supposed to create local variables (export/readonly), make sure to
+         add the W_ASSNGLOBAL flag to each assignment statement word.
+         Part of fix for bug reported by ziyunfei <446240525@qq.com> where
+         readonly can create local variables when invoked with a compound
+         array assignment as an argument within a shell function
+
+subst.c
+       - make_internal_declare: added third argument: command name.  Not used
+         in any useful way yet
+       - do_compound_assignment: handle attempted assignments to readonly
+         variables and print error messages, like bind_variable does and the
+         callers expect. This means that assignments to readonly array
+         variables can't go through a code path that allows them to fail
+         silently
+
+doc/Makefile.in
+       - uninstall: run install-info --delete after removing the installed
+         info file to update the directory file
+
+execute_cmd.c
+       - execute_disk_command: since we still (and have always) perform
+         redirections in child processes, we need to mark that state so
+         we know that we're in a child process.  subshell_performing_redirections
+         is the new variable; non-zero when executing do_redirections()
+
+subst.c
+       - process_substitute: if we are executing process substitution in a
+         redirection expansion context (expanding_redir == 1), the child
+         process should not have access to any temporary environment the
+         parent has.  Call flush_tempenv() in the child process to get rid
+         of it.  Fix for bug reported by Clint Hepner <clint.hepner@gmail.com>
+
+                                  12/9
+                                  ----
+jobs.c
+       - waitchld: if in posix mode and attempting to let SIGCHLD interrupt the
+         wait builtin, make sure wait_intr_flag is non-zero before trying to
+         longjmp to wait_intr_buf.  Fixes bug reported by Aharon Robbins
+         <arnold@skeeve.com>
+
+                                  12/10
+                                  -----
+lib/readline/display.c
+       - update_line: if a prompt containing invisible characters changes,
+         and the change is within the prompt string, we need to redraw the
+         entire prompt.  After that redraw, if the cursor position is after
+         the first index where the old and new lines differ, we can short-
+         circuit the update if the line length stays the same
+       - update_line: if we redraw the entire prompt string because the prompt
+         contains invisible characters and the first difference is in the
+         middle of the prompt, we possibly need to adjust our idea of the
+         first differing character in the old and new lines.  We punt and do
+         a dumb update in this case.  Fixes bug with dynamic vi-mode mode
+         strings containing invisible characters reported by Dylan Cali
+         <calid1984@gmail.com>
+
+                                  12/11
+                                  -----
+lib/readline/display.c
+       - update_line: if we move up to a new screen line, we need to recompute
+         the number of invisible characters on the new current line
+         (visible_wrap_offset).  Fixes bug reported to bug-readline by
+         Per Bothner <per@bothner.com>
+       - update_line: update code that attempts to compute where we are in
+         the new line buffer.  Fixes `vt100' bug reported to bug-readline by
+         Per Bothner <per@bothner.com>
+
+                                  12/18
+                                  -----
+execute_cmd.c
+       - execute_function: unwind-protect and restore BASH_ARGC and BASH_ARGV
+       - restore_funcarray_state: now global
+
+execute_cmd.h
+       - make func_array_state type global, add extern function declaration
+         for restore_funcarray_state
+
+builtins/evalfile.c
+       - _evalfile: use restore_funcarray_state and pop_args as unwind-protects
+         to restore BASH_{SOURCE,LINENO,ARGC,ARGV} and FUNCNAME on interrupts.
+         Fixes bug reported back on 11/10 by Grisha Levit
+         <grishalevit@gmail.com>
+
+                                  12/20
+                                  -----
+lib/readline/isearch.c
+       - _rl_isearch_dispatch: after removing the only character from the
+         search string with DEL, leaving the search string empty, don't match
+         the previous line if we didn't have a match before
+
+                                  12/22
+                                  -----
+bashhist.c
+       - enable_history_list,remember_on_history: initialize to 0 instead of 1
+
+shell.c
+       - init_interactive,init_interactive_script: set enable_history_list and
+         remember_on_history to 1 (defaults)
+
+                                  12/23
+                                  -----
+variables.c
+       - initialize_shell_variables: don't inherit PS4 from the environment
+         if the shell is running with euid == 0; just reset it to `+ '.  This
+         is a known potential vulnerability, since PS4 expansion performs
+         command substitution in the root shell's context before displaying
+         it.  Discussion started by up201407890@alunos.dcc.fc.up.pt
+
+bashhist.c
+       - bash_history_reinit: initialize remember_on_history to the value of
+         enable_history_list (set -o history).  Fixes bug reported by
+         Stephane Chazelas <stephane.chazelas@gmail.com> with command-line
+         option `-o history' not having any effect
+
+                                  12/28
+                                  -----
+lib/readline/{history.h,histfile.c}
+       - history_file_version: new int variable, reserved for future use
+       - history_multiline_entries: new int variable, can be set by the
+         calling application to enable reading multi-line history entries
+         from the history file (currently undocumented)
+
+lib/readline/history.c
+       - _hs_append_history_line: new function, append a line passed as an
+         argument to a specified history entry, used to create multi-line
+         history entries
+
+lib/readline/histfile.c
+       - read_history_range: implement a heuristic that temporarily sets the
+         history comment character if the first line read from the history
+         file looks like it has is a timestamp (#[:digit:]) so we can read
+         timestamps from the history file properly.  Originally reported
+         back in March 2015 by Christoph Anton Mitterer <calestyo@gmail.com>
+       - read_history_range: make sure history_multiline_entries is non-zero
+         if the history file looks like it has timestamps
+       - read_history_range: if we think we have a history file with timestamps
+         and we read more than one non-timestamp consecutive history lines,
+         assume they are part of a single multi-line history entry and paste
+         them together using _hs_append_history_line.  Feature most recently
+         requested by james harvey <jamespharvey20@gmail.com>, also suggested
+         by Christoph Anton Mitterer <calestyo@gmail.com>
+
+examples/loadables/setpgid.c
+       - setpgid: new loadable builtin, originally contributed by Jason
+         Vas Dias <jason.vas.dias@gmail.com>
+
+                                  12/29
+                                  -----
+bashhist.c
+       - bash_history_inhibit_expansion: fix cases where a history expansion
+         should be skipped because it's in a command or process substitution
+         but there is another history expansion preceding the substitution
+         on the command line.  Don't let the previous history expansion fool
+         the function into saying the command substitution history expansion
+         should be performed
+
+builtins/evalstring.c
+       - parse_prologue: always unwind-protect history_expansion_inhibited,
+         since history expansion can be enabled in non-interactive shells,
+         and calling eval once in a non-interactive shell inhibits history
+         expansion forever even if `set -o histexpand' was run before the
+         eval
+
+builtins/common.h
+       - SEVAL_NOHISTEXP: new flag for parse_and_execute/parse_string; means
+         to not perform history expansion (decouple from SEVAL_NOHIST, which
+         now means to not remember commands on history); changed all callers
+         that had SEVAL_NOHIST to have SEVAL_NOHIST|SEVAL_NOHISTEXP
+
+builtins/evalstring.c
+       - parse_prologue: instead of calling bash_history_disable, set
+         remember_on_history to 0 if SEVAL_NOHIST and history_expansion_inhibited
+         to 1 if SEVAL_NOHISTEXP
+
+                                  12/30
+                                  -----
+subst.c
+       - skip_to_histexp: new function, a stripped-down version of skip_to_delim.
+         Used to skip to the next unquoted instance of the history expansion
+         character, handles peculiar quoting and command/process substitution
+         requirements.  Better fix for bug reported by
+         Zigmund.Ozean@zig-home.localdomain back in January, prompted by report
+         from Keith Thompson <keithsthompson@gmail.com>
+
+bashhist.c
+       - bash_history_inhibit_expansion: use skip_to_histexp instead of
+         skip_to_delim
+
+subst.c
+       - parameter_brace_expand_rhs: if the rhs of an expansion is "$@" and
+         IFS is null, we need to separate the (quoted) positional parameters
+         in the returned word with a space, and mark the word as needing to
+         be split on spaces (W_SPLITSPACE).  Fix for issues reported back in
+         October 2014 as the result of an austin-group discussion, and just
+         re-reported by Martijn Dekker <martijn@inlv.org>
+
+                                1/4/2016
+                                --------
+execute_cmd.c
+       - execute_simple_command: if autocd is set, invoke a function named
+         `cd' if one exists, instead of the shell builtin.  Feature requested
+         by transl8czech@gmail.com
+
+builtins/mkbuiltins.c
+       - if a command's short description is the same as its name (e.g., `true'),
+         don't mark the short doc to be translated.  Report and fix from
+         Benno Schulenberg <bensberg@justemail.net>
+
+                                   1/6
+                                   ---
+subst.c
+       - command_substitute,process_substitute: before replacing the file
+         descriptor underlying stdout (fd 1), make sure to purge any pending
+         stdio output that hasn't been written successfully, even after a
+         call to fflush().  Fixes bug reported by cks@cs.toronto.edu
+
+                                   1/7
+                                   ---
+builtins/{echo,printf}.def
+       - echo_builtin,printf_builtin: don't use terminate_immediately; use
+         calls to QUIT in the body of the print loop after writes and flushes.
+         Fixes problem with running the signal handler and exit trap in a
+         signal context and other bug reported by cks@cs.toronto.edu
+
+builtins/common.c
+       - sh_chkwrite: put in calls to QUIT to catch signals that interrupt
+         writes
+
+shell.c
+       - get_current_user_info: protect endpwent() with #ifdef HAVE_GETPWENT.
+         Fixes bug reported by pb <p-bauer-schriesheim@t-online.de>
+
+                                   1/8
+                                   ---
+lib/readline/bind.c
+       - _rl_init_file_error: now a varargs function so it can take format
+         strings and arguments and pass them to vfprintf
+       - rl_parse_and_bind: print a warning if we encounter a key binding
+         string with one or more hyphens but we don't find a valid modifier
+         (`control', `meta', etc.).  Prompted by a report from Andrew Kurn
+         <kurn@sfu.ca>
+       - rl_parse_and_bind: improve several existing error messages now that
+         _rl_init_file_error takes a variable number of arguments
+       - rl_variable_bind: print error message upon encountering unknown
+         variable
+
+                                  1/10
+                                  ----
+lib/readline/bind.c
+       - rl_parse_and_bind: if a `bare' keybinding is supplied without any
+         terminating `:' or whitespace separating it from the command to be
+         bound, signal an error
+
+                                  1/11
+                                  ----
+subst.c
+       - process_substitute: when compiled without job control (JOB_CONTROL not
+         defined), make sure we call stop_making_children like we do in the job
+         control code branch, so already_making_children is reset to 0.  This
+         is what command substitution does.  Fixes bug reported by Alastair
+         Hughes <hobbitalastair@yandex.com>
+
+                                  1/12
+                                  ----
+execute_cmd.c
+       - execute_in_subshell: if a user subshell (`(command)') or other shell
+         compound command has an input pipe, note for later by setting
+         stdin_redir.  This will inhibit the implicit redirection of standard
+         input from /dev/null for async commands executed as part of this
+         subshell.  Fixes bug reported by Martin D Kealey <martin@kurahaupo.gen.nz>
+       - execute_simple_command: if the shell forks to execute this command
+         because it has an input pipe, set stdin_redir to inhibit later redirection
+         from /dev/null for async commands
+
+                                  1/13
+                                  ----
+execute_cmd.c
+       - HASH_BANG_BUFSIZE: use #define for size of buffer used in
+         READ_SAMPLE_BUF instead of straight constant 80
+       - HASH_BANG_BUFSIZ: increase to 128 because Linux allows 128 chars in
+         exec header.  Reported by Ludovic Courtès <ludo@gnu.org>
+
+configure.ac
+       - remove support for purify and purecoverage
+       - change release level to `rc1'
+
+                                  1/15
+                                  ----
+builtins/enable.def
+       - dyn_load_builtin: fix missing argument to builtin_error if load function
+         returns an error.  Fix from Aharon Robbins <arnold@skeeve.com>
+
+                                  1/18
+                                  ----
+builtins/history.def
+       - histtime: display a better error message for invalid timestamps; use
+         existing `??' string for empty/missing timestamps or invalid history
+         entries.  Suggestion from Reuben Thomas <rrt@sc3d.org>
+
+                                  1/21
+                                  ----
+lib/readline/text.c
+       - rl_insert: when trying to optimize typeahead, make sure to reset the
+         key sequence and key sequence length when we read a character that is
+         not bound to self-insert.  Bug report from Geir Hauge
+         <geir.hauge@gmail.com>
+
+                                  1/25
+                                  ----
+doc/{bash.1,bashref.texi}
+       - word splitting: add example showing how -d'' is equivalent to -d
+         after word splitting and null argument removal
+
+                                  1/27
+                                  ----
+doc/{bash.1,bashref.texi}
+       - read: modify description to make it more clear that the line is split
+         using the same rules as word splitting, and use `delimiters' instead
+         of `separators', which people read the wrong way
+
+                                   2/2
+                                   ---
+variables.c
+       - initialize_shell_variables: allow FUNCNEST to set funcnest_max when
+         imported from the environment.  Inspired by
+         https://bugzilla.redhat.com/show_bug.cgi?id=1274553
+
+                                  2/11
+                                  ----
+bashhist.c
+       - bash_history_inhibit_expansion: function should be compiled in only if
+         BANG_HISTORY is defined.  Report from isabella parakiss
+         <izaberina@gmail.com>
+
+[bash-4.4-rc1 frozen]
+
+                                  2/15
+                                  ----
+lib/readline/text.c
+       - rl_refresh_line: call rl_redraw_prompt_last_line instead of
+         rl_forced_update_display to avoid redrawing all lines of a multiline
+         prompt (overwriting the last line of the multiline prompt in the
+         process).  Report from Hugh Davenport <hugh@davenport.net.nz>
+
+                                  2/18
+                                  ----
+subst.c
+       - parameter_brace_expand: when processing ${!name[@]}, make sure to
+         free `name' before returning the list of keys to avoid a memory leak.
+         Fixes bug reported by Emilio PastorMira <Emilio.PastorMira@utimaco.com>
+
+                                  2/19
+                                  ----
+trap.c
+       - free_trap_strings: when freeing the `special' traps (NSIG to BASH_NSIG),
+         check whether or not the `signal' is trapped, as it would be if the
+         subshell inherited it (errtrace) and don't free the trap string in that
+         case.  Fixes bug reported by Jan Klötzke <jan@kloetzke.net>
+
+                                  2/21
+                                  ----
+lib/sh/netconn.c
+       - isnetconn: return false if getpeername fails with errno == EBADF.
+         Bug and fix from Andrew Gregory <andrew.gregory.8@gmail.com>
+
+builtins/shopt.def
+       - parse_bashopts: when reading BASHOPTS from the environment, make
+         sure to call any set functions associated with a variable, instead
+         of just setting the value to 1.  Report and fix from
+         Vehlow, Jörg <Joerg.Vehlow@kratzer-automation.com>
+
+                                  2/22
+                                  ----
+lib/readline/complete.c
+       - rl_display_match_list: don't bother calling strrchr to check the
+         return value from printable_part() if rl_filename_completion_desired
+         is non-zero, since in that case printable_part just returns its
+         argument.  Fixes git completion issue reported by
+         Dilyan Palauzov <dilyan.palauzov@aegee.org>
+       - _rl_colored_completion_prefix: default is now 0, testing is complete
+
+                                  2/23
+                                  ----
+variables.c
+       - assign_hashcmd: if the shell is restricted, reject attempts to add
+         pathnames containing slashes to the hash table, as the hash builtin
+         does.  Fixes bug reported to savannah by Sylvain Beucler as
+         https://savannah.gnu.org/support/?108969
+
+                                  2/24
+                                  ----
+subst.c
+       - NEED_FPURGE_DECL: need it before externs.h included, since fpurge
+         is now used in this file.  Fixes warning reported by Mike
+         Frysinger <vapier@gentoo.org>
+       - skip_double_quoted: add missing argument to declaration
+
+parse.y
+       - shell_getc: in call to internal_warning, use %lu to print an argument
+         cast explicitly to unsigned long.  Fixes warning reported by Mike
+         Frysinger <vapier@gentoo.org>
+
+                                  2/27
+                                  ----
+parse.y
+       - decode_prompt_string: quote result of \s expansion in case shell has
+         been invoked with a pathname like '$(id)'.  Inspired by report from
+         Travis Garrell <travis.garrell@oracle.com>
+       - decode_prompt_string: quote result of \h and \H expansions in the
+         (unlikely) case that the hostname has been changed to something
+         malicious including a command substitution.  From report from
+         Travis Garrell <travis.garrell@oracle.com>
+
+builtins/getopts.def
+       - getopts_unbind_variable: new static function, just calls unbind_variable
+         for now.  Placeholder for any future work to do something special if
+         OPTARG is readonly.  Based on discussion started by Robert Elz
+         <kre@munnari.oz.au>
+
+lib/readline/vi_mode.c
+       - rl_vi_unix_word_rubout: new function, implements ^W as Posix specifies
+         it for vi mode, using whitespace and punctuation characters as word
+         boundaries. Prompted by question from Carlos Pita
+         <carolosjosepita@gmail.com>
+
+lib/readline/vi_keymap.c
+       - bind rl_vi_unix_word_rubout to ^W by default in both insert and
+         command mode
+
+lib/readline/rltty.c
+       - _rl_bind_tty_special_chars: if in vi mode, bind the WERASE character
+         to rl_vi_unix_word_rubout
+
+lib/readline/funmap.c
+       - vi-unix-word-rubout is new bindable name for rl_vi_unix_word_rubout
+
+lib/readline/readline.h
+       - rl_vi_unix_word_rubout: new extern declaration
+
+                                  2/28
+                                  ----
+doc/bash.1
+       - document readline blink-matching-paren variable
+       - document readline completion-display-width variable
+       - document readline completion-map-case variable
+       - note that the default value of history-size depends on the value of
+         the HISTSIZE variable.  All from a message from Branden Robinson
+         <g.branden.robinson@gmail.com>
+
+doc/bash.1,lib/readline/doc/{readline.3,rluser.texi}
+       - convert-meta: modify the description to note that readline will turn
+         the default to off if the locale contains eight-bit characters
+       - input-meta: modify the description to note that readline will turn
+         the default to on if the locale contains eight-bit characters
+       - output-meta: modify the description to note that readline will turn
+         the default to on if the locale contains eight-bit characters.  From
+         a message from Branden Robinson <g.branden.robinson@gmail.com>
+
+                                   3/6
+                                   ---
+examples/loadables/Makefile.in
+       - install-dev: make installdirs a prerequisite; don't rely on the
+         install-supported target to create it first.  Bug with parallel
+         install (`make -j 4 install') reported by Chris Staub
+         <cstaub67@gmail.com>
+
+                                  3/12
+                                  ----
+lib/readline/display.c:
+       - rl_clear_visible_line: clear all screen lines occupied by the current
+         visible readline line.  Inspired by report from Lauri Ranta
+         <lauri.ranta@gmail.com>
+
+lib/readline/readline.h
+       - rl_clear_visible_line: extern declaration
+
+lib/readline/doc/rltech.texi
+       - rl_clear_visible_line: add documentation
+
+                                  3/19
+                                  ----
+findcmd.c
+       - file_status: add inadvertently-dropped test for EXECIGNORE to the
+         `other' bits check.  The check was in the original patch
+       - search_for_command: if the file should not be considered executable
+         because it's in the EXECIGNORE blacklist, don't set file_to_lose_on,
+         since the attempt to execute the last-ditch path will circumvent the
+         EXECIGNORE setting.  Fixes bug reported by Dennis Williamson
+         <dennistwilliamson@gmail.com>
+
+                                  3/28
+                                  ----
+lib/readline/display.c
+       - rl_redisplay: when computing where the cursor should go (and the
+         physical cursor position) after displaying the prompt, don't adjust
+         the cursor position by wadjust if there are no multibyte chars in
+         the prompt.  lpos is already a physical cursor position; _rl_screenwidth
+         is the physical screen width, and we're not calling _rl_col_width and
+         don't need to take invisible characters into account again.  Fixes
+         bug reported by Andreas Schwab <schwab@linux-m68k.org>
+
+                                   4/1
+                                   ---
+parse.y
+       - parse_comsub: when we read `esac' followed by a break character,
+         turn on the LEX_RESWDOK flag because we can now read another case
+         statement or other compound command.  Fixes bug reported by
+         Christian Franke <Christian.Franke@t-online.de>, original version
+         of patch from Piotr Grzybowski <narsil.pl@gmail.com>
+       - parse_comsub: leave the reserved-word-ok flag set for four-char
+         reserved words (then/else/elif/done/time) that can be followed by
+         reserved words; set lex_rwlen to 0 so we know to start reading a
+         new one
+
+                                   4/7
+                                   ---
+builtins/{alias,complete,jobs}.def
+       - {alias,compopt,disown}: add missing `CASE_HELPOPT;' so --help option
+         prints help longdoc instead of builtin_usage()
+
+                                   4/8
+                                   ---
+arrayfunc.c
+       - assign_array_var_from_word_list: use bind_array_var_internal instead
+         of inline code, so value conversions happen on assignment (case
+         modification, arithmetic evaluation, etc).  Fixes bug reported by
+         Geir Hauge <geir.hauge@gmail.com>
+
+                                   4/9
+                                   ---
+shell.c
+       - main: change the logic that determines whether or not bash is running
+         under an emacs terminal emulator so it works with future versions of
+         emacs, which will change to use only $INSIDE_EMACS.  Report and fix
+         from Paul Eggert <eggert@cs.ucla.edu>
+
+lib/glob/sm_loop.c
+       - EXT: if we see ?(pat), we can match 0 or 1 times, so if we don't
+         match, we should consume the extglob pattern and go on to attempt
+         to match the rest of the pattern against the string.  Fixes bug
+         reported by Isabella Parakiss <izaberina@gmail.com>
+       - GMATCH: in case `*', don't short-circuit and match anything if the
+         * is the last character in the pattern until after we check the
+         special cases for matching a `.'.  Fixes bugs reported back on 3/23
+         by Isabella Parakiss <izaberina@gmail.com>
+
+                                  4/13
+                                  ----
+bashhist.c
+       - hc_erasedups: fix memory leak by freeing history entry returned by
+         remove_history.  Bug and fix from Seiichi Ishitsuka
+         <ishitsuka.sc@ncos.nec.co.jp>
+
+                                  4/19
+                                  ----
+config-top.h
+       - CD_COMPLAINS: now settable in config-top.h; enables (fatal) error
+         messages if cd is given multiple directory arguments
+
+                                  4/20
+                                  ----
+execute_cmd.c
+       - coproc_setvars: refuse to create variables with names that are not
+         valid identifiers.  Suggestion from Piotr Grzybowski
+         <narsil.pl@gmail.com>
+
+rltty.c
+       - rl_tty_set_echoing: interface to set _rl_echoing_p, returning old
+         value.  Inspired by gdb use of _rl_echoing_p when switching
+         between terminal and curses modes described by Doug Evans
+         <dje@google.com>
+
+bashline.c
+       - bash_execute_unix_command: use rl_clear_visible_line instead of
+         erasing current line on the screen, inspired by same report from
+         3/12.  Still tentative change
+
+configure.ac
+       - update release status to rc2, may skip this and go directly to
+         release
+
+                                  4/21
+                                  ----
+arrayfunc.c
+       - convert_var_to_array: make sure that the newly-converted array
+         variable is not marked as being an associative array.  Fixes bug
+         reported by Grisha Levit <grishalevit@gmail.com>
+       - convert_var_to_assoc: make sure that the newly-converted associative
+         array variable is not marked as being an indexed array
+
+                                  4/22
+                                  ----
+builtins/evalstring.c
+       - should_suppress_fork: don't suppress the fork if there are any traps
+         set, since that requires that we hang around to react to a signal or
+         collect the command's exit status and run something.  Fixes bug
+         reported by Brian Vandenberg <phantall@gmail.com>
+
+histexpand.c
+       - history_tokenize_word: handle >| as a single token.  Fix from
+         Piotr Grzybowski <narsil.pl@gmail.com> from a report from
+         idallen@idallen-fibe.dyndns.org
+
+                                  4/24
+                                  ----
+execute_cmd.
+       - coproc_setvars: don't overwrite readonly variables used as coproc
+         names.  From a report from Grisha Levit <grishalevit@gmail.com>
+
+histexpand.c
+       - history_tokenize_word: handle strings of digits before redirections
+         beginning with `<' or `>' as part of the redirection word; handle
+         strings of digits following `<&' or `>&' as part of the redirection
+         word.  Inspired by patch from  Piotr Grzybowski <narsil.pl@gmail.com>
+         from a report from idallen@idallen-fibe.dyndns.org
+
+lib/readline/complete.c
+       - rl_display_match_list: if the common prefix is longer than any of
+         the possible matches, set the length of the common prefix to 0 so
+         the entire match gets printed for each match
+       - rl_display_match_list: make sure to output at least one space
+         between each displayed match, even if the displayed length is
+         longer than our computed max
+       - fnprint: if the length of the prefix (prefix_bytes) is greater than
+         or equal to the length of the string to be printed (print_len), make
+         sure to set the prefix length to 0 so the entire string is printed.
+         From a report from Grisha Levit <grishalevit@gmail.com>
+
+                                  4/25
+                                  ----
+subst.c
+       - command_substitute: update the conditions under which we give the
+         terminal to pipeline_pgrp with give_terminal_to to the same ones
+         where wait_for uses to decide whether to give the terminal back to
+         shell_pgrp.  This code exists to undo the work wait_for does; it
+         has to give the terminal back to pipeline_pgrp only under those
+         conditions when wait_for gives it back to the shell pgrp.  Fix for
+         bug reported by Paulo Bardes <bardes0022@gmail.com>
+
+                                  4/26
+                                  ----
+bashline.c
+       - bash_filename_stat_hook: temporarily disable the `nounset' shell
+         option around calls to expand_prompt_string so we don't get error
+         messages during completion.  Fixes issue reported by Eric Pruitt
+         <eric.pruitt@gmail.com>
+
+                                  4/27
+                                  ----
+doc/{bash.1,bashref.texi}
+       - extdebug: clarify that having this option enabled at shell startup
+         acts identically to --debugger.  From a report from Grisha Levit
+         <grishalevit@gmail.com>
+
+jobs.[ch]
+       - wait_for_single_pid: now takes additional `int flags' argument
+
+{jobs,execute_cmd}.c,builtins/wait.def
+       - wait_for_single_pid: changed callers to add extra argument
+
+jobs.c
+       - wait_for_single_pid: if (flags & 1) == 0, don't print the error
+         message if PID isn't found; changed execute_pipeline call when
+         lastpipe is set
+
+                                  4/28
+                                  ----
+general.c
+       - bash_tilde_expand: try not setting interrupt_immediately or
+         terminate_immediately; see what happens with networked password
+         databases
+
+                                  4/29
+                                  ----
+subst.c
+       - parameter_brace_expand, parameter_brace_expand_rhs: now take an
+         additional `pflags' argument from its caller so we can pass
+         state
+       - parameter_brace_expand_rhs: if expand_string_for_rhs returns a
+         quoted null, but l_hasdollat is set to 1, meaning we saw a quoted
+         "$@" of some form, we need to turn off special handling of "$@"
+         so something like "${@-${@-$@}}" expands to an empty string like
+         Posix says it should.  Fixes bug reported by Grisha Levit
+         <grishalevit@gmail.com>
+
+                                   5/1
+                                   ---
+variables.c
+       - bind_variable_internal: if we have a nameref variable with a valid
+         array reference that is invalid for assignment (e.g., a[*]), and
+         assign_array_element returns NULL, short-circuit and return NULL.
+         Fixes bug reported by Grisha Levit <grishalevit@gmail.com>
+
+general.[ch]
+       - valid_nameref_value: new function, return 1 if passed argument is
+         a valid variable name argument for a nameref variable: a valid
+         identifier, a valid array reference, or a valid positional
+         parameter.  Second argument indicates whether the value is to be
+         used for an assignment; in this case, return an error if the name
+         consists of all digits
+
+builtins/declare.def
+       - declare_internal: disallow values for nameref variables that don't
+         pass the tests in valid_nameref_value.  Part of fix for bug
+         reported by Grisha Levit <grishalevit@gmail.com>
+
+variables.c
+       - bind_variable_internal: if trying to assign a value to a nameref
+         variable, throw an error if valid_nameref_value fails (with a second
+         argument of 1).  More fixes for bug reported by Grisha Levit
+         <grishalevit@gmail.com>
+
+                                   5/2
+                                   ---
+builtins/declare.def
+       - declare_internal: don't allow nameref attribute to be applied to an
+         existing readonly variable; it can be used to circumvent readonly
+         value.  Fix for bug reported by Grisha Levit <grishalevit@gmail.com>
+
+variables.[ch]
+       - find_variable_last_nameref, find_global_variable_last_nameref: takes
+         a new flags argument.  If flags is non-zero, and we find a nameref
+         variable that is unset (has no value), return that variable instead
+         of NULL.
+
+{variables,execute_cmd,arrayfunc,subst}.c,builtins/{declare,set}.def
+       - find_variable_last_nameref, find_global_variable_last_nameref: change
+         callers to add flags argument (initially 0)
+
+                                   5/3
+                                   ---
+variables.c
+       - bind_variable_internal: make sure we run the value of a namref
+         variable through valid_nameref_value before doing the assignment.
+         This can go away if we stop allowing namerefs to refer to positional
+         parameters
+
+execute_cmd.c
+       - execute_select_command: if bind_variable returns NULL, handle it as
+         an error, as if attempting assignment to a readonly variable
+       - execute_for_command: use 1 as second argument to
+         find_variable_last_nameref, so it will return an invisible nameref
+         to assign for each variable in the list
+       - execute_for_command: if the current word in the list is an invalid
+         identifier and the loop variable is a nameref, handle it as an error,
+         as if attempting assignment to a readonly variable
+
+                                   5/4
+                                   ---
+variables.c
+       - bind_int_variable: add warning if assigning an int to a nameref
+         variable
+       - assign_in_env: if assigning a variable in the temporary environment
+         that is a namref, throw an error if trying to assign an invalid
+         value
+       - bind_variable_value: use valid_nameref_value instead of calls to
+         legal_identifier and valid_array_reference
+
+execute_cmd.c
+       - coproc_setvars: if we have a nameref variable as the coproc name, but
+         it can't be assigned to for some reason, remove the nameref attribute
+         and  issue a warning that we are doing so
+       - coproc_setvars: don't allow assignment to a nameref variable with an
+         invalid variable name, using same code as find_or_make_array_variable
+
+general.c
+       - valid_nameref_value: disallow values consisting solely of digits,
+         like the positional parameters
+
+builtins/declare.def
+       - declare_internal: don't call valid_nameref_value on the existing value
+         of a variable that's being converted to a nameref -- that value is
+         going to be thrown away and we've already checked the new value
+       - declare_internal: call bind_variable_value with the ASS_NAMEREF flag
+         if we're assigning to an existing nameref variable (for instance,
+         `declare -n x ; declare x=42')
+
+                                   5/5
+                                   ---
+variables.c
+       - make_local_variable: if we are being asked to create a local copy of
+         a nameref variable from a prior scope (checked by looking up
+         using find_variable_noref), use the nameref variable, not the variable
+         it references (which we find using find_variable).  Bug report from
+         Grisha Levit <grishalevit@gmail.com> ; fix by Piotr Grzybowski
+         <narsil.pl@gmail.com>
+
+builtins/declare.def
+       - declare_internal: if asked to do the same thing as above (difference
+         is declare -n r=foo in previous case; declare -n r in this one),
+         don't follow reference var from a previous context.  Create a new
+         local variable (using make_local_variable) and inherit attributes
+         from previous scope's nameref as above
+
+                                   5/6
+                                   ---
+builtins/declare.def
+       - declare_internal: if we are assigning a value to an existing
+         invisible nameref variable, validate value early so we don't end up
+         removing the variable after the assignment fails
+
+builtins/shopt.def
+       - toggle_shopts: don't call set_bashopts here unless $BASHOPTS exists,
+         since we don't want to set it up before it gets read from the
+         environment. Keeping BASHOPTS read-only should keep users from
+         unsetting it.  Fix from Grisha Levit <grishalevit@gmail.com>
+       - shopt_set_debug_mode: make sure error_trace_mode reflects the setting
+         of extdebug.  This one is tentative.  Fix from Grisha Levit
+         <grishalevit@gmail.com>
+       - shopt_set_debug_mode: call set_shellopts after setting error_trace_mode
+         or function_trace_mode.  Fix from Grisha Levit <grishalevit@gmail.com>
+
+shell.c
+       - start_debugger: make sure that function_trace_mode and error_trace_mode
+         reflect the value of debugging_mode, so they are both disabled if we
+         disable debugging mode because we can't find the debugger start file.
+         Fix from Grisha Levit <grishalevit@gmail.com>
+       - start_debugger: set $SHELLOPTS and $BASHOPTS to the option values are
+         reflected if we change or set them here.  Fix from Grisha Levit
+         <grishalevit@gmail.com>
+
+builtins/set.def
+       - reset_shell_options: add reset values for: posix, nolog, pipefail.
+         Fix from Grisha Levit <grishalevit@gmail.com>
+
+builtins/shopt.def
+       - reset_shopt_options: add reset values for: autocd, checkjobs,
+         complete_fullquote, dirspell, failglob, globstar, gnu_errfmt,
+         huponexit, inherit_errexit, interactive_comments, lastpipe,
+         no_empty_cmd_completion, progcomp.  Fix from Grisha Levit
+         <grishalevit@gmail.com>
+       - reset_shopt_options: make sure the following options have the right
+         defaults based on #defines: checkjobs, checkwinsize, direxpand,
+         extglob, globasciiranges.  Fix from Grisha Levit
+         <grishalevit@gmail.com>
+
+flags.c
+       - reset_shell_flags: add missing flags, re-initialize history_expansion
+         based on STRICT_POSIX
+
+                                   5/8
+                                   ---
+lib/readline/histexpand.c
+       - history_expand: if any expansion returns 1 from history_expand_internal,
+         indicating that :p was supplied, make it apply to the entire line
+         like tcsh and csh.  Fixes bug reported by Dean Stanton
+         <dstanton@tintri.com>
+
+variables.[ch]
+       - ifsname: move define to variables.h
+
+execute_cmd.c
+       - execute_for_command: check whether or not the word in the for command
+         is IFS; call setifs every time the variable is assigned a value.
+         Fixes bug report from Grisha Levit <grishalevit@gmail.com>
+
+                                  5/16
+                                  ----
+general.c
+       - valid_nameref_value: explicitly handle name == 0 and *name == 0 right
+         away to save calls to legal_identifier
+
+builtins/declare.def
+       - declare_internal: if trying to set nameref attribute on a variable
+         with a null value, flag as invalid assignment, just as if running
+         `declare -n r=""'.  Fixes bug report from Grisha Levit
+         <grishalevit@gmail.com>
+       - declare_internal: when creating a variable with a temporary value
+         (""), use ASS_FORCE in the assignment flags to bypass name validity
+         checks on nameref variable names
+
+variables.c
+       - bind_variable_internal: don't call valid_nameref_value if we're
+         forcing assignment with (flags & ASS_FORCE)
+
+builtins/read.def
+       - read_builtin: handle bind_variable returning NULL when setting REPLY.
+         Report and fix from Grisha Levit <grishalevit@gmail.com>
+
+builtins/setattr.def
+       - set_var_attribute: handle bind_variable returning NULL
+
+lib/sh/tmpfile.c
+       - sh_seedrand(): call srandom() to seed the random number generator
+       - sh_mktmpname, sh_mktmpfd: if we have random(), assume we have
+         srandom() and seed the random number generator. Still looking for
+         better value to see random number generator with
+
+variables.c
+       - check_unbind_variable: use internal_error instead of builtin_error
+
+{execute_cmd,variables}.c
+       - fix some places where bind_variable could return NULL and it was not
+         checked.  Fix from Piotr Grzybowski <narsil.pl@gmail.com>
+
+                                  5/17
+                                  ----
+arrayfunc.c
+       - convert_var_to_{array,assoc}: make sure to turn off nameref attribute,
+         since namerefs can't be arrays
+
+execute_cmd.c
+       - coproc_setvars: if the coproc name names a nameref, resolve the
+         nameref and use it as the name of the coproc.  Suggested by Grisha
+         Levit <grishalevit@gmail.com>
+
+subst.c
+       - command_substitute: don't bother calling QUIT after calling
+         reset_signal_handlers in the child, kill the child with SIGINT in
+         case we just reset the signal handler to SIG_DFL and we should just
+         exit instead of throwing to top level.  Fixes bug reported by
+         Grisha Levit <grishalevit@gmail.com>
+
+                                  5/18
+                                  ----
+variables.c
+       - find_variable_nameref_for_create: find a nameref variable whose value
+         doesn't resolve to an existing variable and see whether or not that
+         value is appropriate for a new variable to be created
+       - find_variable_nameref_for_assignment: find a nameref variable whose
+         value doesn't resolve to an existing variable and see whether or not
+         that value is appropriate for a new variable to be created.
+         Difference between _assignment and _create is that _assignment
+         allows the nameref value to be a subscripted array reference
+
+builtins/setattr.def
+       - set_var_attribute: if variable lookup doesn't return anything, check
+         for a nameref and make sure that any reference value is something we
+         should be working on here, using find_variable_nameref_for_create().
+         If it fails, error out and return, otherwise it's probably a reference
+         to a variable that hasn't been set yet, so let bind_variable take care
+         of that.  Report from Grisha Levit <grishalevit@gmail.com>
+
+arrayfunc.c
+       - bind_array_variable: if find_shell_variable returns NULL, check for a
+         nameref using find_variable_nameref_for_create and create a new array
+         variable with the value if it returns a valid nameref variable.
+         Makes `unset var; declare -n ref=var ; ref[0]=foo' work right.
+         Report from Grisha Levit <grishalevit@gmail.com>
+
+                                  5/19
+                                  ----
+variables.[ch]
+       - unbind_variable_noref: unset a variable NAME without following any
+         nameref chain.  If the first instance of the variable with that name
+         is a nameref, just unset that nameref variable.
+
+builtins/getopts.def
+       - getopts_unbind_variable: if OPTARG is going to be unbound, use
+         unbind_variable_noref to unbind that name even if it is a nameref
+         variable.  Issue raised by Grisha Levit <grishalevit@gmail.com>
+
+execute_cmd.c
+       - coproc_unsetvars: use unbind_variable_noref in case someone sets the
+         coproc _PID variable as a nameref pointing to something read-only or
+         strange.  Issue raised by Grisha Levit <grishalevit@gmail.com>
+
+builtins/set.def
+       - set_ignoreeof: use unbind_variable_noref to unset "IGNOREEOF" and
+         "ignoreeof"
+       - set_posix_mode: use unbind_variable_noref to unset "POSIXLY_CORRECT"
+
+variables.c
+       - make_vers_array: use unbind_variable_noref to unset "BASH_VERSINFO"
+
+lib/sh/shmatch.c
+       - sh_regmatch: use unbind_variable_noref to unset "BASH_REMATCH"
+
+bashline.c
+       - bash_execute_unix_command: use check_unbind_variable to unset
+         READLINE_LINE and READLINE_POINT
+
+pcomplete.c
+       - unbind_compfunc_variables: use unbind_variable_noref to unset
+         COMP_LINE, COMP_POINT, COMP_WORDS, COMP_CWORD, COMP_TYPE, COMP_KEY
+       - gen_shell_function_matches: use unbind_variable_noref to unset
+         COMPREPLY
+
+config-top.h
+       - USE_MKTEMP/USE_MKSTEMP: define by default to use libc version of
+         mktemp and mkstemp in lib/sh/tmpfile.c.  Recommended by Mike
+         Frysinger <vapier@gentoo.org> to fix a FreeBSD problem
+
+configure.ac,config.h.in
+       - mkstemp: check for mkstemp, define HAVE_MKSTEMP if available
+
+config-bot.h
+       - USE_MKSTEMP: #undef if HAVE_MKSTEMP not defined
+
+                                  5/22
+                                  ----
+variables.c
+       - assign_in_env: if appending to a variable's value, make sure we call
+         make_variable_value with the empty string if expand_assignment_string_to_string
+         returns NULL, as do_assignment_internal does.  Fixes bug with
+         `str=''; val=foo ; val+=str printenv val' reported by Grisha Levit
+         <grishalevit@gmail.com>
+       - assign_in_env: if assigning to a nameref variable in the temporary
+         environment, and the nameref has a valid value for assignment (even
+         if the target variable is not set), resolve the nameref and create
+         a variable in the temporary environment named by the nameref's value.
+         If the nameref variable is invisible or isn't set to a valid value
+         for assignment, just create a regular temporary variable with the
+         nameref's name.  This provides a degree of ksh93 compatibility.
+         Suggested by Grisha Levit <grishalevit@gmail.com>
+       - find_variable_nameref_context,find_variable_last_nameref_context:
+         instead of returning NULL when detecting a loop, return a
+         distinguished value: &nameref_maxloop_value
+       - bind_variable: catch nameref_maxloop_value so we can do different
+         things based on whether or not we get it.  Right now we don't do
+         anything different, but we could
+
+                                  5/24
+                                  ----
+lib/readline/display.c
+       - update_line,_rl_move_cursor_relative: save value of MB_CUR_MAX in a
+         variable and use it throughout the functions instead of recomputing it
+         every time (which possibly costs a function call)
+
+                                  5/25
+                                  ----
+builtins/declare.def
+       - declare_internal: only check whether the value being assigned to a
+         nameref variable is a valid identifier if we're not appending to an
+         existing value.  Suggested by Grisha Levit <grishalevit@gmail.com>
+       - declare_internal: add a couple of more checks on nameref names:
+               o make sure `declare -n x[3]=y' is an error
+               o nameref variable self-references now produce a warning when
+                 in function scope
+               o nameref variable self-references using subscripted arrays
+                 (a=a[0]) now produce warnings at function scope and errors at
+                 global scope
+
+                                  5/29
+                                  ----
+builtins/declare.def
+       - declare_internal: use name of readonly variable when calling sh_readonly      
+         instead of name passed as argument to declare in case we've followed
+         a nameref chain
+       - declare_internal: when turning off attributes on a nameref variable
+         after following the nameref chain and turning them off on the target
+         variable, don't allow the readonly attribute to be removed.  This is
+         primarily intended to turn off the nameref attribute.  Issue pointed
+         out by Grisha Levit <grishalevit@gmail.com>
+       - declare_internal: if we are attempting to modify an existing global
+         nameref variable, and the -n option is supplied, operate on the
+         nameref variable itself, not the variable it references
+
+doc/{bash.1,bashref.texi}
+       - change the descriptions of namerefs and declare -n slightly to note
+         that using the -n option to declare will operate on the nameref
+         variable itself rather than the variable it references
+
+variables.c
+       - bind_variable_internal: if trying to assign to a read-only variable,
+         print the error message using the variable's name instead of the
+         name passed to bind_variable in case we followed a nameref
+
+builtins/declare.def
+       - declare_internal: when we're creating a (possibly invisible) variable
+         as part of another operation, assigning NULL, make sure to use
+         ASS_FORCE to avoid warning messages from any existing nameref
+         variables we follow
+       - declare_internal: allow the nameref attribute to be removed from a
+         readonly nameref variable without a value but do not allow it to be
+         removed from a readonly nameref variable that has a value, even if it
+         doesn't reference an existing variable.  This distinction is for ksh93
+         compatibility.  Pointed out by Grisha Levit <grishalevit@gmail.com>
+
+                                  5/31
+                                  ----
+builtins/declare.def
+       - declare_internal: if the call to bind_variable_value fails for some
+         reason, make sure to restore the nameref attribute to flags_on and
+         flags_off before calling NEXT_VARIABLE
+
+subst.c
+       - make_internal_declare: handle += append op
+       - shell_expand_word_list: when transforming assignment statement
+         arguments to `declare', make sure to handle += append op to avoid
+         passing invalid identifiers to declare.  Report by Grisha Levit
+         <grishalevit@gmail.com>
+
+                                   6/1
+                                   ---
+builtins/declare.def
+       - declare_internal: if a nameref assignment fails, only call delete_var
+         to delete the variable if we created it in declare_internal in the
+         first place
+
+general.c
+       - check_selfref: new function, checks a NAME against a VALUE for nameref
+         self-reference
+
+general.h
+       - check_selfref: extern declaration
+
+builtins/declare.def
+       - declare_internal: call check_selfref to determine whether a given NAME
+         and VALUE constitute an invalid nameref variable self-reference
+
+variables.c
+       - bind_variable_internal: call check_selfref to determine whether a
+         given NAME and VALUE constitute an invalid nameref variable self-
+         reference
+
+                                   6/2
+                                   ---
+parse.y
+       - clear_shell_input_line: new function, clears contents of shell_input_line
+         and sets index to 0, but doesn't free it
+
+externs.h
+       - clear_shell_input_line: extern declaration
+
+builtins/evalstring.c
+       - parse_and_execute: call clear_shell_input_line after setting input to
+         string to be executed.  Fixes problem with command substitution and
+         multi-line aliases reported by Grisha Levit <grishalevit@gmail.com>
+
+eval.c
+       - parse_command: only execute PROMPT_COMMAND if the shell is not
+         currently expanding an alias; use the same tests as parse.y:SHOULD_PROMPT
+         and parse.y:prompt_again() use to decide whether or not to print a
+         prompt.  Fixes problems with PROMPT_COMMAND and multi-line aliases
+         reported by Grisha Levit <grishalevit@gmail.com>
+
+builtins/set.def
+       - unset_builtin: changes to fix three problems reported by Grisha
+         Levit <grishalevit@gmail.com>:
+               o if -n is supplied, we should not try to unset a function if
+                 a variable isn't found
+               o unsetting namerefs whose values are array references does
+                 not work
+               o unset -n n[0], where n is a nameref, would unset the
+                 referenced variable instead of `n'
+
+redir.c
+       - redir_varvalue: handle case where nameref var points to subscripted
+         array reference.  Reported by Grisha Levit <grishalevit@gmail.com>
+
+variables.c
+       - bind_variable_value: make sure to call check_selfref only if aflags
+         includes ASS_NAMEREF and not ASS_FORCE.  Reported by Grisha Levit
+         <grishalevit@gmail.com>
+
+general.c
+       - valid_nameref_value: now understands a FLAGS value of 2 to mean that
+         the name will be used to create a variable, so only legal_identifier
+         matters
+
+arrayfunc.c
+       - find_or_make_array_variable: call valid_nameref_value with FLAGS value
+         of 2 to indicate we will be creating a variable.  Fixes mapfile issue
+         reported by Grisha Levit <grishalevit@gmail.com>
+
+                                   6/5
+                                   ---
+builtins/declare.def
+       - declare_internal: only pass ASS_FORCE as part of assignment flags to
+         assignments concerning arrays
+       - declare_internal: when at the global scope, if we resolve a nameref
+         and commit to using the new name, go back to to the beginning of the
+         loop and use the new name in the checks and variable references.
+         Make sure we construct the new name as a straight substitution of
+         the nameref value into the old name, including array subscripts and
+         rebuilding the correct values for `offset' and `value', since they
+         are relative to the original value of name.
+         Fixes several issues with checking use of subscripted array variables
+         as nameref values
+       - declare_internal: when calling assign_array_element, make sure to
+         pass ASS_APPEND if aflags includes it, so things like
+               declare -a var; var[1]=1; declare var[1]+=4
+         append to the value appropriately and var[1] ends up being `14'
+
+arrayfunc.c
+       - valid_array_reference: make sure the array reference is properly
+         terminated after the first subscript; return invalid if there is
+         anything following the closing `]'
+
+                                  6/12
+                                  ----
+variables.c
+       - bind_variable_internal: if asked to perform an array subscript
+         assignment on a nameref variable, display a warning and remove the
+         nameref attribute (as bash-4.3 did).  Reported by Dan Douglas
+         <ormaaj@gmail.com>
+
+                                  6/14
+                                  ----
+test.c
+       - posixtest: handle four-argument case where argv[1] == '(' and
+         argv[4] == ')' by performing two-argument test on $2 and $3.
+         Reported by Joerg Schilling <Joerg.Schilling@fokus.fraunhofer.de>
+
+                                  6/15
+                                  ----
+variables.c
+       - sv_ignoreeof: make sure ignoreeof is set only if IGNOREEOF is set and
+         has a value (no `local IGNOREEOF'). Reported by Grisha Levit
+         <grishalevit@gmail.com>
+       - sv_strict_posix: make sure posixly_correct is set only if
+         POSIXLY_CORRECT is set and has a value.  Reported by Grisha Levit
+         <grishalevit@gmail.com>
+
+                                  6/16
+                                  ----
+builtins/declare.def
+       - declare_internal: analogous to 6/12 change; when performing an array
+         subscript assignment on a nameref, display a warning, remove the
+         nameref attribute, and go on
+
+                                  6/21
+                                  ----
+execute_cmd.c
+       - shell_execve: make sure errno is (re)set appropriately before
+         returning error value on exec format error
+
+                                  6/23
+                                  ----
+subst.c
+       - param_expand: when expanding $* in a context where splitting is not
+         desired (pflags & PF_ASSIGNRHS), make sure to quote the word and the
+         included separators.  Reported by Dan Douglas <ormaaj@gmail.com>
+
+                                  6/30
+                                  ----
+configure.ac
+       - release version is now `beta2'
+
+execute_cmd.c
+       - execute_simple_command: even if already_making_children is non-zero,
+         don't call wait_for if last_made_pid == NO_PID.  Indirectly inspired
+         by report from Nicolas Vivet <nicolas@nzx.io>
+
+                                   7/2
+                                   ---
+subst.c
+       - expand_word_internal: when adding an IFS character to the accumulated
+         string, don't quote it if word expansion is not going to be
+         performed ((word->flags & (W_NOSPLIT|W_NOSPLIT2)) == 0) in the
+         default case.  This was already the case everwhere else, when we did
+         `goto add_ifs_character;'.  Fixes bug reported by Ibrahim M. Ghazal
+         <imgx64@gmail.com>
+
+subst.[ch],arrayfunc.c
+       - string_list_dollar_at: now takes a new third argument, currently
+         reserved for future use; changed callers and declaration
+
+                                   7/7
+                                   ---
+[bash-4.4-beta2 frozen]
+
+                                   7/9
+                                   ---
+bashline.c
+       - check_redir: make sure that index is > 0 before checking previous
+         char; fixes out of bounds read reported by Hanno Böck
+         <hanno@hboeck.de>
+
+                                  7/16
+                                  ----
+subst.c
+       - parameter_brace_expand: if ${array[@]} or ${array[*]} is supplied
+         with an unset (or empty) array, and -u is enabled, don't make it
+         an unbound variable error, like $@ or $* when there are no
+         positional parameters.  Based on report from Ian Allen
+         <idallen@idallen-fibe.dyndns.org>
+
+lib/readline/signals.c
+       - rl_pending_signal(): return the number of any signal readline has
+         caught but is waiting to handle
+
+lib/readline/callback.c
+       - rl_persistent_signal_handlers: new variable, restores readline-6.2
+         signal handler semantics: installed at rl_callback_handler_install
+         time and removed with rl_clear_signals when a complete line has
+         been read
+       - _rl_callback_newline: call rl_set_signals if rl_persistent_signal_handlers
+         is non-zero
+       - rl_callback_read_char: install signal handlers with rl_set_signals
+         if rl_persistent_signal_handlers is 0 (the default)
+       - CALLBACK_READ_RETURN: uninstall signal handlers with rl_clear_signals
+         only if rl_persistent_signal_handlers is 0 (the default)
+
+lib/readline/readline.h
+       - rl_pending_signal: new extern declaration
+       - rl_persistent_signal_handlers: new extern declaration
+
+                                  7/19
+                                  ----
+execute_cmd.c
+       - execute_while_or_until: make sure we decrement `continuing' the way
+         we decrement `breaking' if the loop test indicates we will be
+         breaking out of the loop.  That keeps `until continue' from
+         keeping `continuing' set to 1.  Reported by Dan Douglas
+         <ormaaj@gmail.com>
+
+                                  7/20
+                                  ----
+trap.c
+       - run_pending_traps,_run_trap_internal: save and restore temporary_env,
+         set temporary_env to 0 before trap runs so traps don't inherit a
+         command's temporary env.  Fixes bug with IFS assignment in tempenv
+         and trap reported by Andriy Martynets <martynets@volia.ua>
+
+jobs.c
+       - run_sigchld_trap: save and restore temporary_env, set temporary_env
+         to 0 before trap runs so traps don't inherit a command's temporary
+         env (see above)
+
+                                  7/21
+                                  ----
+execute_cmd.c
+       - execute_function: unwind-protect function_line_number, in case we
+         are executing a function inside another function.  Reported by
+         Grisha Levit <grishalevit@gmail.com> in context of evaled functions
+         and DEBUG traps
+       - execute_arith_for_command,execute_arith_command,execute_simple_command,
+         execute_cond_command: make sure line_number doesn't go < 0 when
+         adjusting it by function_line_number
+
+                                  7/23
+                                  ----
+subst.c,command.h
+       - move the PF_ constants to command.h so other files can see them, now
+         that PF_ASSIGNRHS has meaning to string_list_dollar_at
+
+arrayfunc.h
+       - AV_ASSIGNRHS: new flag, indicate that ${a[@]} is being expanded on
+         the RHS of an assignment statement
+
+arrayfunc.c
+       - array_value_internal: if AV_ASSIGNRHS passed for ${a[@]}, pass
+         PF_ASSIGNRHS to string_list_dollar_at to support args separated by
+         spaces even if $IFS does not have the default value.  Reported by
+         Dan Douglas <ormaaj@gmail.com>
+
+subst.c
+       - string_list_dollar_at: if FLAGS argument includes PF_ASSIGNRHS, obey
+         rules for $@ on the RHS of an assignment statement: expand to
+         postitional parameters separated by spaces no matter what the first
+         character of $IFS is.  Reported by Dan Douglas <ormaaj@gmail.com>
+       - parameter_brace_expand_word: pass AV_ASSIGNRHS as flags value to
+         array_value if PF_ASSIGNRHS is set and we are expanding an array
+         variable subscripted by @ or *
+       - param_expand: pass pflags to string_list_dollar_at in case it contains
+         PF_ASSIGNRHS
+       - expand_word_internal: if we have an assignment statement argument to
+         a declaration builtin (W_ASSIGNARG), turn on W_ASSIGNRHS when we see
+         the `=' to enable special $@ behavior
+       - expand_word_internal: if W_ASSIGNARG enabled in word flags, pass that
+         flag and W_ASSIGNRHS to recursive call to expand_word_internal when
+         expanding double-quoted string; handles "$@" when IFS is not the
+         default value and word splitting will not be performed
+
+subst.c
+       - expand_word_internal: change case that handles '' (single-quoted
+         empty string) to only discard it if we will not be performing word
+         splitting (W_NOSPLIT|W_NOSPLIT2), since we need to add a quoted null
+         argument if the subsequent characters will cause word splitting.
+         This is how "" (double-quoted empty string) is handled after a bug
+         fix back in August 2010.  Reported by Grisha Levit
+         <grishalevit@gmail.com>, fix for Posix interp 888
+
+                                  7/27
+                                  ----
+subst.c
+       - param_expand: change fix from 6/23 (expanding $* in a context where
+         word splitting is not performed) to make sure that $* expands to
+         something before trying to quote the string.  Bug and fix from
+         Andreas Schwab <schwab@suse.de>
+
+lib/readline/bind.c
+       - _rl_get_string_variable_value: fix a cut-and-paste error that caused
+         the emacs mode string to be displayed for both vi insert and command
+         mode strings.  Report and fix from Steve Jones <sjml@slohj.org>
+
+                                  7/28
+                                  ----
+lib/readline/display.c
+       - update_line: we can't use PROMPT_ENDING_INDEX unless we're testing
+         against _rl_last_c_pos; if we are testing buffer indices, we need to
+         use prompt_last_invisible directly.  Fixes mode string redisplay issue
+         with short prompt strings reported by Steve Jones <sjml@slohj.org>
+
+                                   8/4
+                                   ---
+nojobs.c
+       - without_job_control: new function, resets child state that's
+         eventually used to decide whether or not to wait_for children
+
+execute_cmd.c
+       - initialize_subshell: call without_job_control in both the
+         JOB_CONTROL and no job control paths so we can reset the state in
+         subshells that will not cause them to wait_for children
+         inappropriately.  Fixes bug reported by Dan Cross <crossd@gmail.com>
+
+                                   8/5
+                                   ---
+configure.ac
+       - release version is now `rc2'
+
+bashline.c
+       - command_word_completion_function: if direxpand is set, make sure to
+         run hint_text through bash_directory_completion_hook, since
+         readline will do that and we want to be able to match the results
+         readline returns.  Fixes bug reported by Pat Somaru
+         <tuf18542@temple.edu>
+
+command.h
+       - W_COMPLETE: new flag word value
+       - PF_COMPLETE: new flags value for param_expand
+
+subst.h
+       - SX_STRIPDQ: new flag, used for string_extract_double_quoted
+
+bashline.c
+       - bash_filename_stat_hook,bash_directory_completion_hook: pass W_COMPLETE
+         flag to expand_prompt_string
+
+subst.c
+       - expand_word_internal: if W_COMPLETE in word->flags, pass PF_COMPLETE
+         to param_expand
+       - param_expand: if PF_COMPLETE in pflags, pass SX_COMPLETE to
+         extract_command_subst.  This allows `"$(echo ~/' to perform
+         completion successfully
+       - string_extract_double_quoted: turn third argument into a flags arg,
+         old STRIPDQ is now set if flags&SX_STRIPDQ
+       - string_extract_double_quoted: changed callers, if third argument was
+         1, pass SX_STRIPDQ instead
+       - expand_word_internal: if W_COMPLETE in word->flags, pass SX_COMPLETE
+         in flags to string_extract_double_quoted for case '"'
+       - string_extract_double_quoted: if SX_COMPLETE in flags, pass it to
+         extract_command_subst
+       - expand_word_internal: if W_COMPLETE in word->flags, make sure W_COMPLETE
+         is in temp word passed to recursive call to expand_word_internal to
+         expand double-quoted string.  Fixes bug reported by John Passaro
+         <john.a.passaro@gmail.com>
+
+                                   8/9
+                                   ---
+[bash-4.4-rc2 frozen]
+
+                                  8/10
+                                  ----
+subst.c
+       - sub_append_string: use size_t variable to store string length to
+         avoid integer overflow.  Report from Siteshwar Vashisht
+         <svashisht@redhat.com>
+       - sub_append_string: `size' argument is now pointer to size_t; changed
+         istring_index in expand_word_internal to accommodate change
+
+lib/sh/ufuncs.c
+       - include "posixselect.h" if HAVE_SELECT is defined, make sure that
+         fd_set and the rest are defined
+
+                                  8/11
+                                  ----
+lib/readline/histexpand.c
+       - history_tokenize_word: use ISDIGIT instead of isdigit for more
+         argument checking
+       - "chardefs.h": include for ISDIGIT define and <ctype.h>.  Fix from
+         Mike Frysinger <vapier@gentoo.org>
+
+lib/sh/eaccess.c,externs.h
+       - sh_eaccess: first argument now const char *
+       - sh_stataccess,sh_euidaccess: first argument now const char *, since
+         sh_stat and sh_eaccess call them.
+         Fix from Mike Frysinger <vapier@gentoo.org>
+
+lib/glob/glob.c
+       - sh_eaccess: change local prototype
+
+general.[ch]
+       - all_digits,legal_identifier,valid_nameref_value,importable_function_name,
+         exportable_function_name,check_binary_file,file_exists,file_isdir,
+         file_iswdir,same_file,make_absolute,valid_nameref_value: first
+         argument (always identifier or filename) is now a `const char *';
+         some second filename arguments now `const char *'.
+         Fix from Mike Frysinger <vapier@gentoo.org>
+
+configure.ac,config.h.in
+       - uintptr_t: make sure it's defined to an integer type wide enough to
+         hold a pointer
+
+lib/sh/tmpfile.c
+       - sh_seedrand: use `uintptr_t' to cast pointer value to int value,
+         instead of allowing truncation to take place, since srandom takes
+         an `unsigned int'.
+         Fix from Mike Frysinger <vapier@gentoo.org>
+
+arrayfunc.[ch]
+       - valid_array_reference,array_variable_name,array_variable_part,
+         array_value_internal,array_value,get_array_value: first argument
+         (always variable name) now a `const char *'
+         Fix from Mike Frysinger <vapier@gentoo.org>
+
+                                  8/19
+                                  ----
+print_cmd.c
+       - xtrace_print_word_list: if (xtflags & 2), don't try to quote the
+         words in the LIST argument.  Intended to be used in places where
+         the list has not yet been expanded
+       - xtrace_print_for_command_head: call xtrace_print_word_list with
+         flags argument of 2.  Fixes issue reported by Aharon Robbins
+         <arnold@skeeve.com>
+       - xtrace_print_select_command_head: call xtrace_print_word_list with
+         flags argument of 2
+
+                                  8/21
+                                  ----
+lib/sh/netopen.c
+       - netopen: fix memory leak by freeing allocated path before error
+         return.  Fix from Dmitry Goncharov <dgoncharov@users.sf.net>
+
+doc/{bash.1,bashref.texi}
+       - change conditional commands description to make it clearer that
+         bash doesn't emulate /dev/fd if the OS provides it
+
+                                  8/22
+                                  ----
+braces.c
+       - expand_amble: free partial and tem on failure to allocate memory
+         for merged partial+result strvec.  Fix from Dmitry Goncharov
+         <dgoncharov@users.sf.net>
+
+                                  8/23
+                                  ----
+jobs.c
+       - wait_for: don't call get_tty_state when a job finishes if we're
+         running it as part of programmable completion.  We test
+         rl_readline_state.  Fixes bug reported by Jaro Punta
+         <silly8888@gmail.com>
+
+                                  8/24
+                                  ----
+subst.c
+       - pat_subst: fix memory leak (mstr).  Fix from Dmitry Goncharov
+         <dgoncharov@users.sf.net>
+       - split_at_delims: fix memory leak (d2).  Fix from Dmitry Goncharov
+         <dgoncharov@users.sf.net>
+
+                                  8/26
+                                  ----
+subst.c
+       - match_upattern,match_wpattern: make sure that a trailing `*' is
+         not escaped (preceded by an odd number of backslashes) before we
+         append a `*' when checking whether a pattern matches anywhere in
+         the string
+
+lib/readline/{input,signals}.c
+       - protect instances of SIGQUIT with #ifdef SIGQUIT; apparently
+         MinGW doesn't define it
+       - protect instances of SIGHUP with #ifdef SIGHUP; apparently
+         MinGW doesn't define it.  From a report from Simon Sobisch
+         <simonsobisch@gnu.org>
+
+xmalloc.o
+       - allocerr: only try to find the break and report it if we're using
+         the bash malloc; there's no guarantee that any other malloc is
+         using sbrk()
+
+doc/{bash.1,bashref.texi}
+       - quote removal: add paragraph mentioning quote removal to beginning
+         of expansions section, referencing later paragraph.  Report from
+         Michel Lanne <michel.lanne@gmail.com>
+
+                                8/30/2016
+                                ---------
+lib/readline/input.c
+       - protect instances of SIGALRM and SIGWINCH with #ifdef; apparently
+         MinGW doesn't define them.  From a report from Simon Sobisch
+         <simonsobisch@gnu.org>
+
+subst.c
+       - SPECIAL_VAR: make sure name is not the empty string before going on,
+         empty strings can result in unitialized reads
+       - CHECK_STRING_OVERRUN: semi-general macro to use in *extract* and
+         similar functions to to check whether a function called to parse an
+         embedded construct (like a backquoted command substitution) doesn't
+         consume the entire string because it's unterminated
+       - skip_double_quoted: make sure other extraction functions don't
+         consume the entire string (which they can if the construct is
+         unterminated) before incrementing the index and going on.  Uses
+         CHECK_STRING_OVERRUN
+       - extract_dollar_brace_string: check for unterminated embedded
+         constructs consuming the entire string with CHECK_STRING_OVERRUN ('`')
+       - skip_matched_pair: use CHECK_STRING_OVERRUN to make sure unterminated
+         embedded "`", $(, ${ don't cause out-of-bounds reads
+
+parse.y
+       - parse_comsub: when parsing a here-document delimiter, make sure we
+         don't try to use `nestret' after freeing it.  Fixes bug reported by
+         Franco Costantini <franco.costantini.20@gmail.com>
+
+[bash-4.4 frozen]
+
+                                  9/10
+                                  ----
+trap.c
+       - run_debug_trap: only give the terminal to pipeline_pgrp if
+         subshell_environment doesn't include SUBSHELL_ASYNC|SUBSHELL_PIPE.
+         Fixes bug reported by Matthew Giassa <matthew@giassa.net>
+
+execute_cmd.c
+       - execute_simple_command: if user_subshell is set, check and set
+         SUBSHELL_ASYNC if asynchronous is set as well as setting
+         SUBSHELL_PAREN
+
index e87ecfb9ecd2e18c43cc32f0c62967796a35b119..1ea308bd451885ff32db7b90ff3359f103a9c189 100644 (file)
@@ -831,7 +831,7 @@ compopt_builtin (list)
   WORD_LIST *l, *wl;
   COMPSPEC *cs;
 
-  opts_on = opts_off = Eflag = Dflag = 0;
+  opts_on = opts_off = Eflag = Dflag = Iflag = 0;
   ret = EXECUTION_SUCCESS;
 
   reset_internal_getopt ();
index 4c0f4913aae319455b65c6379ea55dfd3ff75964..aa0c0312c1393de6ea21cbf6be522754e610b07f 100644 (file)
 /* Define if you have the <sys/ioctl.h> header file.  */
 #undef HAVE_SYS_IOCTL_H
 
+/* Define if you have the <sys/mman.h> header file.  */
+#undef HAVE_SYS_MMAN_H
+
 /* Define if you have the <sys/ndir.h> header file.  */
 #undef HAVE_SYS_NDIR_H
 
index b20c58505b139a0cc02308fe5c9cceb7dcd1691c..4ad952b606b52c8e22637d4770a2ca65f370245c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.ac for Bash 5.0, version 4.091.
+# From configure.ac for Bash 5.0, version 4.092.
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.69 for bash 5.0-alpha.
 #
@@ -9292,7 +9292,7 @@ fi
 done
 
 for ac_header in sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
-                sys/param.h sys/socket.h sys/stat.h \
+                sys/mman.h sys/param.h sys/socket.h sys/stat.h \
                 sys/time.h sys/times.h sys/types.h sys/wait.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
index 5c0e76616d99f6cf9d91c448384b71501b48aca7..d3287d980d25310af34801bf64129d96f0dd5e9c 100644 (file)
@@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure script.
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_REVISION([for Bash 5.0, version 4.091])dnl
+AC_REVISION([for Bash 5.0, version 4.092])dnl
 
 define(bashvers, 5.0)
 define(relstatus, alpha)
@@ -714,7 +714,7 @@ AC_CHECK_HEADERS(unistd.h stdlib.h stdarg.h varargs.h limits.h string.h \
                 stdbool.h stddef.h stdint.h netdb.h pwd.h grp.h strings.h \
                 regex.h syslog.h ulimit.h)
 AC_CHECK_HEADERS(sys/pte.h sys/stream.h sys/select.h sys/file.h sys/ioctl.h \
-                sys/param.h sys/socket.h sys/stat.h \
+                sys/mman.h sys/param.h sys/socket.h sys/stat.h \
                 sys/time.h sys/times.h sys/types.h sys/wait.h)
 AC_CHECK_HEADERS(netinet/in.h arpa/inet.h)
 
index 362ea71f8fbf07c1545f460f912dd2b9c6505d0d..4798379e8ecd15e8d158fc3302ba8fb3e0241bf8 100644 (file)
@@ -1506,7 +1506,8 @@ only when in extended debugging mode (see the description of the
 option to the
 .B shopt
 builtin below).
-Setting \fBextdebug\fP after the shell has started to execute a script
+Setting \fBextdebug\fP after the shell has started to execute a script,
+or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
 .TP
 .B BASH_ARGV
@@ -1526,7 +1527,8 @@ only when in extended debugging mode
 option to the
 .B shopt
 builtin below).
-Setting \fBextdebug\fP after the shell has started to execute a script
+Setting \fBextdebug\fP after the shell has started to execute a script,
+or referencing this variable when \fBextdebug\fP is not set,
 may result in inconsistent values.
 .TP
 .B BASH_ARGV0
index e2fc386b51fee4257d6bb0e3cf8904b284ad093b..8867f9b0a441ae6c3b1025d512ebafe2c37f6f4b 100644 (file)
@@ -5636,7 +5636,8 @@ The shell sets @code{BASH_ARGC} only when in extended debugging mode
 (see @ref{The Shopt Builtin}
 for a description of the @code{extdebug} option to the @code{shopt}
 builtin).
-Setting @code{extdebug} after the shell has started to execute a script
+Setting @code{extdebug} after the shell has started to execute a script,
+or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
 
 @item BASH_ARGV
@@ -5649,7 +5650,8 @@ The shell sets @code{BASH_ARGV} only when in extended debugging mode
 (see @ref{The Shopt Builtin}
 for a description of the @code{extdebug} option to the @code{shopt}
 builtin).
-Setting @code{extdebug} after the shell has started to execute a script
+Setting @code{extdebug} after the shell has started to execute a script,
+or referencing this variable when @code{extdebug} is not set,
 may result in inconsistent values.
 
 @item BASH_ARGV0
index 736c8af1a7757629bbbf8b24406c553e378e8bf9..92b1a8fa1a655c78d3d60a976e87646e21b29417 100644 (file)
 #include "builtins.h"
 #include "common.h"
 
-#define RETURN(x) \
-       do { \
-               if (sp) *sp = sec; \
-               if (usp) *usp = usec; \
-               return (x); \
-       } while (0)
-
 int
 sleep_builtin (list)
 WORD_LIST      *list;
index 32cb0dadbc4acff2cb664835f9ffc1dc89a92227..5621adf418a69eb4a17ff52e856ad91384be07ab 100644 (file)
 #include <errno.h>
 #include <stdio.h>
 
+#if defined (HAVE_MMAP)
+#include <sys/mman.h>
+#endif
+
 /* Define getpagesize () if the system does not.  */
 #ifndef HAVE_GETPAGESIZE
 #  include "getpagesize.h"
@@ -196,10 +200,25 @@ typedef union _malloc_guard {
 #define LESSCORE_MIN   10
 #define LESSCORE_FRC   13
 
-#define MMAP_THRESHOLD 15      /* must be greater than SPLIT_MAX, COMBINE_MAX */
-
 #define STARTBUCK      1
 
+/* Should we use mmap for large allocations? */
+#if defined (HAVE_MMAP)
+#  if !defined (MAP_ANON) && defined (MAP_ANONYMOUS)
+#    define MAP_ANON MAP_ANONYMOUS
+#  endif
+#endif
+
+#if defined (HAVE_MMAP) && defined (MAP_ANON)
+#  define USE_MMAP
+#endif
+
+#if defined (USE_MMAP)
+#  define MMAP_THRESHOLD       14      /* must be >= SPLIT_MAX, COMBINE_MAX */
+#else
+#  define MMAP_THRESHOLD       (8 * SIZEOF_LONG)
+#endif
+
 /* Flags for the internal functions. */
 #define MALLOC_WRAPPER 0x01    /* wrapper function */
 #define MALLOC_INTERNAL        0x02    /* internal function calling another */
@@ -291,6 +310,9 @@ int malloc_flags = 0;       /* future use */
 int malloc_trace = 0;  /* trace allocations and frees to stderr */
 int malloc_register = 0;       /* future use */
 
+/* Use a variable in case we want to dynamically adapt it in the future */
+int malloc_mmap_threshold = MMAP_THRESHOLD;
+
 #ifdef MALLOC_TRACE
 char _malloc_trace_buckets[NBUCKETS];
 
@@ -597,7 +619,7 @@ morecore (nu)
 
   /* Try to split a larger block here, if we're within the range of sizes
      to split. */
-  if (nu >= SPLIT_MIN)
+  if (nu >= SPLIT_MIN && nu <= malloc_mmap_threshold)
     {
       bsplit (nu);
       if (nextf[nu] != 0)
@@ -606,7 +628,7 @@ morecore (nu)
 
   /* Try to coalesce two adjacent blocks from the free list on nextf[nu - 1],
      if we can, and we're within the range of the block coalescing limits. */
-  if (nu >= COMBINE_MIN && nu < COMBINE_MAX && busy[nu - 1] == 0 && nextf[nu - 1])
+  if (nu >= COMBINE_MIN && nu < COMBINE_MAX && nu <= malloc_mmap_threshold && busy[nu - 1] == 0 && nextf[nu - 1])
     {
       bcoalesce (nu);
       if (nextf[nu] != 0)
@@ -635,6 +657,25 @@ morecore (nu)
       nblks = 1;
     }
 
+#if defined (USE_MMAP)
+  if (nu > malloc_mmap_threshold)
+    {
+      mp = (union mhead *)mmap (0, sbrk_amt, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+      if ((void *)mp == MAP_FAILED)
+       goto morecore_done;
+      nextf[nu] = mp;
+      mp->mh_alloc = ISFREE;
+      mp->mh_index = nu;
+      CHAIN (mp) = 0;
+#ifdef MALLOC_STATS
+      _mstats.nmmap++;
+      _mstats.tmmap += sbrk_amt;
+#endif
+      goto morecore_done;
+    }
+#endif
+       
+
 #ifdef MALLOC_STATS
   _mstats.nsbrk++;
   _mstats.tsbrk += sbrk_amt;
@@ -918,6 +959,17 @@ internal_free (mem, file, line, flags)
   if (mg.i != p->mh_nbytes)
     xbotch (mem, ERR_ASSERT_FAILED, _("free: start and end chunk sizes differ"), file, line);
 
+#if defined (USE_MMAP)
+  if (nunits > malloc_mmap_threshold)
+    {
+      munmap (p, binsize (nunits));
+#if defined (MALLOC_STATS)
+      _mstats.nlesscore[nunits]++;
+#endif
+      goto free_return;
+    }
+#endif
+
 #if GLIBC21
   if (nunits >= LESSCORE_MIN && ((char *)p + binsize(nunits) == sbrk (0)))
 #else
@@ -1076,6 +1128,8 @@ internal_realloc (mem, n, file, line, flags)
   _mstats.nrcopy++;
 #endif
 
+  /* If we are using mmap and have mremap, we could use it here. */
+
   if ((m = internal_malloc (n, file, line, MALLOC_INTERNAL|MALLOC_NOTRACE|MALLOC_NOREG)) == 0)
     return 0;
   FASTCOPY (mem, m, tocopy);
index 11389ffc04b873c135718fafc46e663b896b2514..dac0298071a25a44514904355d580acd96652709 100644 (file)
@@ -25,6 +25,7 @@
 
 #ifdef MALLOC_STATS
 
+/* This needs to change if the definition in malloc.c changes */
 #ifndef NBUCKETS
 #  define NBUCKETS 30
 #endif
@@ -77,6 +78,8 @@ struct _malstats {
   int nsplit[NBUCKETS];
   int tbcoalesce;
   int ncoalesce[NBUCKETS];
+  int nmmap;
+  bits32_t tmmap;
 };
 
 /* Return statistics describing allocation of blocks of size BLOCKSIZE.
@@ -98,6 +101,7 @@ struct bucket_stats {
   int nlesscore;
   int nsplit;
   int ncoalesce;
+  int nmmap;           /* currently unused */
 };
 
 extern struct bucket_stats malloc_bucket_stats __P((int));
index 4a18a12840da82e207edc66266cad004779882bb..05247970f36312ec005142254e09229700eba944 100644 (file)
@@ -36,6 +36,8 @@
 
 extern int malloc_free_blocks __P((int));
 
+extern int malloc_mmap_threshold;
+
 extern struct _malstats _mstats;
 
 extern FILE *_imalloc_fopen __P((char *, char *, char *, char *, size_t));
@@ -103,6 +105,10 @@ _print_malloc_stats (s, fp)
   for (i = totused = totfree = 0; i < NBUCKETS; i++)
     {
       v = malloc_bucket_stats (i);
+      /* Show where the mmap threshold is; sizes greater than this use mmap to
+        allocate and munmap to free (munmap shows up as lesscore). */
+      if (i == malloc_mmap_threshold+1)
+       fprintf (fp, "--------\n");
       if (v.nmal > 0)
        fprintf (fp, "%8lu\t%4d\t%6d\t%5d\t%8d\t%8d %5d %8d\n", (unsigned long)v.blocksize, v.nfree, v.nused, v.nmal, v.nmorecore, v.nlesscore, v.nsplit, v.ncoalesce);
       totfree += v.nfree * v.blocksize;
@@ -115,6 +121,8 @@ _print_malloc_stats (s, fp)
           _mstats.nmal, _mstats.nfre, _mstats.nrealloc, _mstats.nrcopy);
   fprintf (fp, "Total sbrks: %d, total bytes via sbrk: %d\n",
           _mstats.nsbrk, _mstats.tsbrk);
+  fprintf (fp, "Total mmaps: %d, total bytes via mmap: %d\n",
+          _mstats.nmmap, _mstats.tmmap);
   fprintf (fp, "Total blocks split: %d, total block coalesces: %d\n",
           _mstats.tbsplit, _mstats.tbcoalesce);
 }
index 7d22b2cb6af6d0dc13085566349cac02f2c6d724..baf036df56ba36ac6853ae53a5730ccb1b0075d1 100644 (file)
@@ -846,12 +846,16 @@ Return the function invoked by @var{keyseq} in keymap @var{map}.
 If @var{map} is @code{NULL}, the current keymap is used.  If @var{type} is
 not @code{NULL}, the type of the object is returned in the @code{int} variable
 it points to (one of @code{ISFUNC}, @code{ISKMAP}, or @code{ISMACR}).
+It takes a "translated" key sequence and should not be used if the key sequence
+can include NUL.
 @end deftypefun
 
-@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len Keymap map, int *type)
+@deftypefun {rl_command_func_t *} rl_function_of_keyseq_len (const char *keyseq, size_t len, Keymap map, int *type)
 Return the function invoked by @var{keyseq} of length @var{len}
 in keymap @var{map}. Equivalent to @code{rl_function_of_keyseq} with the
 addition of the @var{len} parameter.
+It takes a "translated" key sequence and should be used if the key sequence
+can include NUL.
 @end deftypefun
 
 @deftypefun {char **} rl_invoking_keyseqs (rl_command_func_t *function)
index 58c375b70d886bcff86f789ae4a15eee397f87c8..554f3d6ecc09d7149b13daa2d36a6bab1480269f 100755 (executable)
@@ -1,4 +1,4 @@
-BUILD_DIR=/usr/local/build/chet/bash/bash-current
+BUILD_DIR=/usr/local/build/bash/bash-current
 THIS_SH=$BUILD_DIR/bash
 PATH=$PATH:$BUILD_DIR
 
index 657883ae39da0e4cd2ac7308db56c09560dde16c..97113e825d897990680f4c87e936e8ad0d7fbfd8 100644 (file)
@@ -229,7 +229,9 @@ static SHELL_VAR *get_dirstack __P((SHELL_VAR *));
 
 #if defined (ARRAY_VARS)
 static SHELL_VAR *get_groupset __P((SHELL_VAR *));
-
+#  if defined (DEBUGGER)
+static SHELL_VAR *get_bashargcv __P((SHELL_VAR *));
+#  endif
 static SHELL_VAR *build_hashcmd __P((SHELL_VAR *));
 static SHELL_VAR *get_hashcmd __P((SHELL_VAR *));
 static SHELL_VAR *assign_hashcmd __P((SHELL_VAR *,  char *, arrayind_t, char *));
@@ -1652,6 +1654,27 @@ get_groupset (self)
   return (self);
 }
 
+#  if defined (DEBUGGER)
+static SHELL_VAR *
+get_bashargcv (self)
+     SHELL_VAR *self;
+{
+  static int self_semaphore = 0;
+
+  /* Backwards compatibility: if we refer to BASH_ARGV or BASH_ARGC at the
+     top level without enabling debug mode, and we don't have an instance
+     of the variable set, initialize the arg arrays.
+     This will already have been done if debugging_mode != 0. */
+  if (self_semaphore == 0 && variable_context == 0 && debugging_mode == 0)     /* don't do it for shell functions */
+    {
+      self_semaphore = 1;
+      init_bash_argv ();
+      self_semaphore = 0;
+    }
+  return self;
+}
+#  endif
+
 static SHELL_VAR *
 build_hashcmd (self)
      SHELL_VAR *self;
@@ -1882,8 +1905,8 @@ initialize_dynamic_variables ()
   v = init_dynamic_array_var ("GROUPS", get_groupset, null_array_assign, att_noassign);
 
 #  if defined (DEBUGGER)
-  v = init_dynamic_array_var ("BASH_ARGC", get_self, null_array_assign, att_noassign|att_nounset);
-  v = init_dynamic_array_var ("BASH_ARGV", get_self, null_array_assign, att_noassign|att_nounset);
+  v = init_dynamic_array_var ("BASH_ARGC", get_bashargcv, null_array_assign, att_noassign|att_nounset);
+  v = init_dynamic_array_var ("BASH_ARGV", get_bashargcv, null_array_assign, att_noassign|att_nounset);
 #  endif /* DEBUGGER */
   v = init_dynamic_array_var ("BASH_SOURCE", get_self, null_array_assign, att_noassign|att_nounset);
   v = init_dynamic_array_var ("BASH_LINENO", get_self, null_array_assign, att_noassign|att_nounset);