]> git.ipfire.org Git - thirdparty/bash.git/blobdiff - CHANGES
Imported from ../bash-3.2.tar.gz.
[thirdparty/bash.git] / CHANGES
diff --git a/CHANGES b/CHANGES
index 178a55fec6076c8facc36c28941ef96cdce16c1b..d8a64fbd84cff023339e8adc552582613db96a3a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,261 @@
+This document details the changes between this version, bash-3.2-release,
+and the previous version, bash-3.2-beta.
+
+1.  Changes to Bash
+
+a.  Fixed a bug that caused the temporary environment passed to a command to
+    affect the shell's environment under certain circumstances.
+
+b.  Fixed a bug in the printf builtin that caused the %q format specifier to
+    ignore empty string arguments.
+
+c.  Improved multibyte character environment detection at configuration time.
+
+d.  Fixed a bug in the read builtin that left spurious escape characters in the
+    input after processing backslashes when assigning to an array variable.
+
+2.  Changes to Readline
+
+a.  Fixed a redisplay bug that occurred in multibyte-capable locales when the
+    prompt was one character longer than the screen width.
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.2-beta,
+and the previous version, bash-3.2-alpha.
+
+1.  Changes to Bash
+
+a.  Changed the lexical analyzer to treat locale-specific blank characters as
+    white space.
+
+b.  Fixed a bug in command printing to avoid confusion between redirections and
+    process substitution.
+
+c.  Fixed problems with cross-compiling originating from inherited environment
+    variables.
+
+d.  Added write error reporting to printf builtin.
+
+e.  Fixed a bug in the variable expansion code that could cause a core dump in
+    a multi-byte locale.
+
+f.  Fixed a bug that caused substring expansion of a null string to return
+    incorrect results.
+
+g.  BASH_COMMAND now retains its previous value while executing commands as the
+    result of a trap, as the documentation states.
+
+2.  Changes to Readline
+
+a.  Fixed a bug with prompt redisplay in a multi-byte locale to avoid redrawing
+    the prompt and input line multiple times.
+
+b.  Fixed history expansion to not be confused by here-string redirection.
+
+c.  Readline no longer treats read errors by converting them to newlines, as
+    it does with EOF.  This caused partial lines to be returned from readline().
+
+------------------------------------------------------------------------------
+This document details the changes between this version, bash-3.2-alpha,
+and the previous version, bash-3.1-release.
+
+1.  Changes to Bash
+
+a.  Fixed a source bug that caused the minimal configuration to not compile.
+
+b.  Fixed memory leaks in error handling for the `read' builtin.
+
+c.  Changed the [[ and (( compound commands to set PIPESTATUS with their exit
+    status.
+
+d.  Fixed some parsing problems with compound array assignments.
+
+e.  Added additional configuration changes for: NetBSD (incomplete multibyte
+    character support)
+
+f.  Fixed two bugs with local array variable creation when shadowing a variable
+    of the same name from a previous context.
+
+g.  Fixed the `read' builtin to restore the correct set of completion functions
+    if a timeout occurs.
+
+h.  Added code to defer the initialization of HISTSIZE (and its stifling of the
+    history list) until the history file is loaded, allowing a startup file to
+    override the default value.
+
+i.  Tightened up the arithmetic expression parsing to produce better error
+    messages when presented with invalid operators.
+
+j.  Fixed the cross-compilation support to build the signal list at shell
+    invocation rather than compile time if cross-compiling.
+
+k.  Fixed multibyte support for non-gcc compilers (or compilers that do not
+    allow automatic array variable sizing based on a non-constant value).
+
+l.  Several fixes to the code that manages the list of terminated jobs and
+    their exit statuses, and the list of active and recently-terminated jobs
+    to avoid pid aliasing/wraparound and allocation errors.
+
+m.  Fixed a problem that allowed scripts to die due to SIGINT while waiting
+    for children, even when started in the background or otherwise ignoring
+    SIGINT.
+
+n.  Fixed a bug that caused shells invoked as -/bin/bash from not being
+    recognized as login shells.
+
+o.  Fixed a problem that caused shells in the background to give the terminal
+    to a process group other than the foreground shell process group.
+
+p.  Fixed a problem with extracting the `varname' in ${#varname}.
+
+q.  Fixed the code that handles SIGQUIT to not exit immediately -- thereby
+    calling functions that may not be called in a signal handler context --
+    but set a flag and exit afterward (like SIGINT).
+
+r.  Changed the brace expansion code to skip over braces that don't begin a
+    valid matched brace expansion construct.
+
+s.  Fixed `typeset' and `declare' to not require that their shell function
+    operands to be valid shell identifiers.
+
+t.  Changed `test' to use access(2) with a temporary uid/euid swap when testing
+    file attributes and running setuid, and access(2) in most other cases.
+
+u.  Changed completion code to not attempt command name completion on a line
+    consisting solely of whitespace when no_empty_command_completion is set.
+
+v.  The `hash' builtin now prints nothing in posix mode when the hash table is
+    empty, and prints a message to that effect to stdout instead of stderr
+    when not in posix mode.
+
+w.  Fixed a bug in the extended pattern matching code that caused it to fail to
+    match periods with certain patterns.
+
+x.  Fixed a bug that caused the shell to dump core when performing filename
+    generation in directories with thousands of files.
+
+y.  Returned to the original Bourne shell rules for parsing ``:  no recursive
+    parsing of embedded quoted strings or ${...} constructs.
+
+z.  The inheritence of the DEBUG, RETURN, and ERR traps is now dependent only
+    on the settings of the `functrace' and `errtrace' shell options, rather
+    than whether or not the shell is in debugging mode.
+
+aa. Fixed a problem with $HOME being converted to ~ in the expansion of
+    members of the DIRSTACK array.
+
+bb. Fixed a problem with quoted arguments to arithmetic expansions in certain
+    constructs.
+
+cc. The command word completion code now no longer returns matching directories
+    while searching $PATH.
+
+dd. Fixed a bug with zero-padding and precision handling in snprintf()
+    replacement.
+
+ee. Fixed a bug that caused the command substitution code not to take embedded
+    shell comments into account.
+
+ff. Fixed a bug that caused $((...);(...)) to be misinterpreted as an
+    arithmetic substitution.
+
+gg. Fixed a bug in the prompt expansion code that inappropriately added a
+    \001 before a \002 under certain circumstances.
+
+hh. Fixed a bug that caused `unset LANG' to not properly reset the locale
+    (previous versions would set the locale back to what it was when bash
+    was started rather than the system's "native" locale).
+
+ii. Fixed a bug that could cause file descriptors > 10 to not be closed even
+    when closed explicitly by a script.
+
+jj. Fixed a bug that caused single quotes to be stripped from ANSI-C quoting
+    inside double-quoted command substitutions.
+
+kk. Fixed a bug that could cause core dumps when `return' was executed as the
+    last element of a pipeline inside a shell function.
+
+ll. Fixed a bug that caused DEBUG trap strings to overwrite commands stored in
+    the jobs list.
+
+2.  Changes to Readline
+
+a.  Fixed a problem that caused segmentation faults when using readline in
+    callback mode and typing consecutive DEL characters on an empty line.
+
+b.  Fixed several redisplay problems with multibyte characters, all having to
+    do with the different code paths and variable meanings between single-byte
+    and multibyte character redisplay.
+
+c.  Fixed a problem with key sequence translation when presented with the
+    sequence \M-\C-x.
+
+d.  Fixed a problem that prevented the `a' command in vi mode from being
+    undone and redone properly.
+
+e.  Fixed a problem that prevented empty inserts in vi mode from being undone
+    properly.
+
+f.  Fixed a problem that caused readline to initialize with an incorrect idea
+    of whether or not the terminal can autowrap.
+
+g.  Fixed output of key bindings (like bash `bind -p') to honor the setting of
+    convert-meta and use \e where appropriate.
+
+h.  Changed the default filename completion function to call the filename
+    dequoting function if the directory completion hook isn't set.  This means
+    that any directory completion hooks need to dequote the directory name,
+    since application-specific hooks need to know how the word was quoted,
+    even if no other changes are made.
+
+i.  Fixed a bug with creating the prompt for a non-interactive search string
+    when there are non-printing characters in the primary prompt.
+
+j.  Fixed a bug that caused prompts with invisible characters to be redrawn
+    multiple times in a multibyte locale.
+
+k.  Fixed a bug that could cause the key sequence scanning code to return the
+    wrong function.
+
+l.  Fixed a problem with the callback interface that caused it to fail when
+    using multi-character keyboard macros.
+
+m.  Fixed a bug that could cause a core dump when an edited history entry was
+    re-executed under certain conditions.
+
+n.  Fixed a bug that caused readline to reference freed memory when attmpting
+    to display a portion of the prompt.
+
+3.  New Features in Bash
+
+a.  Changed the parameter pattern replacement functions to not anchor the
+    pattern at the beginning of the string if doing global replacement - that
+    combination doesn't make any sense.
+
+b.  When running in `word expansion only' mode (--wordexp option), inhibit
+    process substitution.
+
+c.  Loadable builtins now work on MacOS X 10.[34].
+
+d.  Shells running in posix mode no longer set $HOME, as POSIX requires.
+
+e.  The code that checks for binary files being executed as shell scripts now
+    checks only for NUL rather than any non-printing character.
+
+f.  Quoting the string argument to the [[ command's  =~ operator now forces
+    string matching, as with the other pattern-matching operators.
+
+4.  New Features in Readline
+
+a.  Calling applications can now set the keyboard timeout to 0, allowing
+    poll-like behavior.
+
+b.  The value of SYS_INPUTRC (configurable at compilation time) is now used as
+    the default last-ditch startup file.
+
+c.  The history file reading functions now allow windows-like \r\n line
+    terminators.
+
+------------------------------------------------------------------------------
 This document details the changes between this version, bash-3.1-release,
 and the previous version, bash-3.1-rc2.
 
@@ -48,7 +306,7 @@ and the previous version, bash-3.1-beta1.
 
 1.  Changes to Bash
 
-a.  Fixed a bug that could cause core dumps due of accessing the current
+a.  Fixed a bug that could cause core dumps due to accessing the current
     pipeline while in the middle of modifying it.
 
 b.  Fixed a bug that caused pathnames with backslashes still quoting characters