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