Package: bash
Version: 4.1-3
Severity: important

Bash 4.0 changed the rules for completion word splitting so that
they are incompatible with 3.x.  I think some Breaks: will be needed
to ensure smooth upgrades.

The closest to a hint NEWS provides is:

 i.  The programmable completion code now uses the same set of characters as
     readline when breaking the command line into a list of words.

but the problem is something else --- with exactly the same
COMP_WORDBREAKS, earlier and later versions show different behavior.

Example:

 . /etc/bash_completion.d/git
 git log --pretty=<tab><tab>

lists medium, full, etc with bash 3.0 but falls back to completing on
files in the cwd in bash 4.0.

The bash_completion project works around this by introducing a
_get_cword function abstracting the differences away:

| commit f733e71e1f8d63c072a402346d8162f9c6b63ae2
| Date:   Sun Sep 20 14:11:26 2009 +0200
| 
|     Split _get_cword into bash-3/4 versions
[...]
|     Bash-4 splits COMP_WORDS using characters from COMP_WORDBREAKS, but has
|     a bug where quoted words are also splitted, see:
|     http://www.mail-archive.com/bug-b...@gnu.org/msg06095.html
|
|     __get_cword3 is used for bash-2/3 and __get_cword4 is used for bash-4.

and has refined this over time to a _get_comp_words_by_ref function
using only functionality that works correctly with both bash versions.

The upshot:

 1. bash-completion versions before 1.1 are broken by bash 4.

 2. All known versions of git's completion script are broken by bash 4.
    There is a patch cooking on the git mailing list to get it working
    again.

 3. Other completion scripts might need changes, too.  There are about
    74 packages to check :(, based on

        zgrep bash_completion.d Contents-i386.gz |
        sed -e 's/.*  *//' |
        cut -d'/' -f2 |
        uniq |
        wc -l

Any ideas for reducing the work of finding versions to Breaks:?



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to