On Mon, May 23, 2011 at 11:39:45PM +0300, Ville Skyttä wrote:
> On 05/23/2011 02:45 AM, Igor Murzov wrote:
> > Hey! I get stuck trying to implement completion script for strings 
> > containing 
> > two parts for completion delimited by '%' sign.  For example, `cmd 
> > opt%arg`. 
> > The problem is that, if i hit tab key, when cursor is behind delimeter, 
> > bash 
> > eats first part of string leaving `cmd arg`.
> [...]
> >     if [[ "$cur" == ?*%* ]]; then
> >         cur="${cur#*%}"
> >         COMPREPLY=( $( compgen -W 'abc bbb cde' -- "$cur" ) )
> >         return 0
> >     fi
> 
> Not sure if I understand correctly, but does replacing the above with
> this work the way you'd like?
> 
>     if [[ "$cur" == ?*%* ]]; then
>         COMPREPLY=( $( compgen -P "${cur%%%*}%" \
>             -W 'abc bbb cde' -- "${cur#*%}" ) )
>         return 0
>     fi

I just tested the following, it works as it should (with the -P):
        pref="${cur%\%*}"%
        suf="${cur##*%}"
        COMPREPLY=( $( compgen -P "${pref}" -W "abc bbb cde" -- "$suf" )

but I guess he would like the "other way"...
and I'm interested too in knowing how to deals with COMP_WORDBREAK,
(especially using properly the API)


Raph

_______________________________________________
Bash-completion-devel mailing list
Bash-completion-devel@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/bash-completion-devel

Reply via email to