[Bash-completion-devel] [SCM] bash-completion branch, master, updated. 1.3-357-gc7e2640

Raphaël raphael.droz at gmail.com
Sun Jun 12 10:57:14 UTC 2011


On Sun, Jun 12, 2011 at 01:11:20PM +0300, Ville Skyttä wrote:
> On 06/11/2011 11:05 PM, David Paleino wrote:
> > The following commit has been merged in the master branch:
> > commit c7e26402ca4509ac38a616e430b3d1538b9f1c60
> > Author: Raphaël Droz <raphael.droz+floss at gmail.com>
> > Date:   Sat Jun 11 22:04:19 2011 +0200
> > 
> >     Added completion scripts for lpr(1) and lpq(1).
> 
> Basic test cases missing for both.
> 
> > diff --git a/completions/cups b/completions/cups
> > index 6ba7bff..21ddd76 100644
> > --- a/completions/cups
> > +++ b/completions/cups
> > @@ -11,6 +11,66 @@ _cancel()
> >  } &&
> >  complete -F _cancel cancel
> >  
> > +have lpr || return
> > +
> > +_lpr()
> > +{
> > +    local cur prev words cword
> > +    _init_completion || return
> > +
> > +    compopt +o nospace
> 
> This compopt seems unnecessary.
Isn't the comp option alive between invocations ?
I put it here because a previous invocation may have called the:
compopt -o nospace below (but I didn't test that)

> 
> > +    case $prev in
> > +        -P)
> > +            COMPREPLY=( $( compgen -W "$( lpstat -a | cut -d' ' -f1 )" -- "$cur" ) )
> > +            return 0
> > +            ;;
> > +        -U)
> > +            COMPREPLY=( $( compgen -u -- "$cur" ) )
> > +            return 0
> > +            ;;
> > +        -o)
> > +            compopt -o nospace
> > +            COMPREPLY=( $( compgen -W "media= landscape orientation-requested= sides= fitplot number-up= scaling= cpi= lpi= page-bottom= page-top= page-left= page-right=" -- "$cur" ) )
> > +            return 0
> > +            ;;
> 
> Shouldn't the compopt -o nospace be done only for completions that end
> with a "="?  I.e. move it after COMPREPLY=(...) and do
> [[ $COMPREPLY == *= ]] && compopt -o nospace

sure it should !
I now understand better this idiom.
But is it really equivalent to:
    ${#COMPREPLY[@]} -eq 1 && ${COMPREPLY[0]} == *=




Raph



More information about the Bash-completion-devel mailing list