Subject: CVS commit: pkgsrc/shells/bash
To: None <pkgsrc-changes@NetBSD.org>
From: Thomas Klausner <wiz@netbsd.org>
List: pkgsrc-changes
Date: 10/22/2006 11:18:11
Module Name:	pkgsrc
Committed By:	wiz
Date:		Sun Oct 22 11:18:11 UTC 2006

Modified Files:
	pkgsrc/shells/bash: Makefile distinfo
	pkgsrc/shells/bash/patches: patch-af
Removed Files:
	pkgsrc/shells/bash/patches: patch-aa patch-ab patch-ac patch-ad
	    patch-ae

Log Message:
Update to 3.2:

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.


To generate a diff of this commit:
cvs rdiff -r1.29 -r1.30 pkgsrc/shells/bash/Makefile
cvs rdiff -r1.8 -r1.9 pkgsrc/shells/bash/distinfo
cvs rdiff -r1.1 -r0 pkgsrc/shells/bash/patches/patch-aa \
    pkgsrc/shells/bash/patches/patch-ab
cvs rdiff -r1.2 -r0 pkgsrc/shells/bash/patches/patch-ac \
    pkgsrc/shells/bash/patches/patch-ad pkgsrc/shells/bash/patches/patch-ae
cvs rdiff -r1.2 -r1.3 pkgsrc/shells/bash/patches/patch-af

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.