bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A programmable completoin bug?


From: Chet Ramey
Subject: Re: A programmable completoin bug?
Date: Fri, 02 Dec 2011 20:32:46 -0500
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0) Gecko/20111105 Thunderbird/8.0

On 11/30/11 2:08 AM, Clark J. Wang wrote:
> (Tested with bash 4.2.10 and 4.1.9)
> 
> [bash-4.2.10] # cat foo.compspec
> compspec_foo()
> {
>     local cmd=$1 cur=$2 pre=$3
> 
>     if [[ $cur = :* ]]; then
>         COMPREPLY=( changed changed/IGNORE_ME )
>     fi
> }
> 
> complete -F compspec_foo foo
> [bash-4.2.10] # source foo.compspec
> [bash-4.2.10] # foo :short<TAB>
> [bash-4.2.10] # foo changed  <-- Fine, this is what I want
> [bash-4.2.10] # foo :this-is-a-long-word<TAB>
> [bash-4.2.10] # foo :this-i  <-- Bug here?
> 

First of all, you must have removed `:' from $COMP_WORDBREAKS, because
you won't get any matches unless you have.

I can't reproduce this behavior using bash-4.2.20 (after modifying
COMP_WORDBREAKS); I get `changed' as the completion in both cases.
Have you done `set -x' to get an idea of what's happening when the
completion function runs?

Chet


-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU    chet@case.edu    http://cnswww.cns.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]