Subject: Re: bash completion broken on ubuntu 10.10?

From: Mathias Lafeldt <[email-masked]>
Date: Thu, 21 Oct 2010 12:35:03 +0200

On 10/21/2010 04:50 AM, Peter van der Does wrote:
> On Thu, 21 Oct 2010 01:04:09 +0200
> SZEDER Gábor <[email-masked]> wrote:
> 
>> Hi,
>>
>> Git's bash completion script offers possible arguments to some
>> options, e.g. it lists pretty formats after 'git log --pretty=<TAB>',
>> merge tools after 'git mergetool --tool=<TAB>', refs after 'git commit
>> --reuse-message=<TAB>', etc.
>>
>> On a three day old ubuntu 10.10 install these don't work anymore; the
>> completion script offers the list of files in all those cases.
>>
>> After a bit of investigation I found that when I press TAB after 'git
>> log --pretty=', then ${COMP_WORDS[COMP_CWORD-1]} contains '--pretty'
>> and ${COMP_WORDS[COMP_CWORD]} contains "=".  Weird.
>>
>> Then I remembered that we had some COMP_WORDBREAKS issues in the past
>> (db8a9ff, bash completion: Resolve git show ref:path<tab> losing ref:
>> portion, 2008-07-15)).  So I looked at my $COMP_WORDBREAKS, but didn't
>> see anything suspicious (it contains "'><=;|&(: ).  Removing the '='
>> makes the listing after 'git log --pretty=' work, but breaks many
>> other things badly.
>>
>> I don't have any ideas what could possibly be wrong here (but it's too
>> late here for any bright ideas anyway...).  Could someone confirm or
>> deny this behaviour on ubuntu 10.10?
>>
>>
>> Thanks,
>> Gábor
>>
> 
> My guess is that it has to do with Bash 4, the equal sign must be seen
> as a new word. I'm running Ubuntu 10.04 and have the same problem.
> I fixed the problem locally, I just don't know if that works on Bash 3
> and I doubt it will work on Bash 3.
> 
> I changed the script only for git log, not other commands yet, like 
> git am --whitespace=<tab><tab>
> 
> 

Same problem here.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 10.04.1 LTS
Release:	10.04
Codename:	lucid

$ bash --version 
GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)

$ shopt
autocd         	off
cdable_vars    	off
cdspell        	off
checkhash      	off
checkjobs      	off
checkwinsize   	on
cmdhist        	on
compat31       	off
compat32       	off
compat40       	off
dirspell       	off
dotglob        	off
execfail       	off
expand_aliases 	on
extdebug       	off
extglob        	on
extquote       	on
failglob       	off
force_fignore  	on
globstar       	off
gnu_errfmt     	off
histappend     	on
histreedit     	off
histverify     	off
hostcomplete   	off
huponexit      	off
interactive_comments	on
lithist        	off
login_shell    	off
mailwarn       	off
no_empty_cmd_completion	off
nocaseglob     	off
nocasematch    	off
nullglob       	off
progcomp       	on
promptvars     	on
restricted_shell	off
shift_verbose  	off
sourcepath     	on
xpg_echo       	off

-Mathias