On 10/13/13 at 09:55am, Allan McRae wrote:
> On 13/10/13 03:32, Andrew Gregory wrote:
> > On invalid combinations of flags we were only printing the unhelpfully
> > vague message "invalid option".
> > 
> > Signed-off-by: Andrew Gregory <[email protected]>
> > ---
> >  src/pacman/conf.h   | 3 ++-
> >  src/pacman/pacman.c | 7 ++++++-
> >  2 files changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/pacman/conf.h b/src/pacman/conf.h
> > index e263d7c..45e48c0 100644
> > --- a/src/pacman/conf.h
> > +++ b/src/pacman/conf.h
> > @@ -128,7 +128,8 @@ enum {
> >  
> >  /* Long Operations */
> >  enum {
> > -   OP_NOCONFIRM = 1000,
> > +   OP_LONG_FLAG_MIN = 1000,
> > +   OP_NOCONFIRM,
> >     OP_CONFIG,
> >     OP_IGNORE,
> >     OP_DEBUG,
> > diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
> > index 93baa44..308ff38 100644
> > --- a/src/pacman/pacman.c
> > +++ b/src/pacman/pacman.c
> > @@ -828,7 +828,12 @@ static int parseargs(int argc, char *argv[])
> >             result = parsearg_global(opt);
> >             if(result != 0) {
> >                     /* global option parsing failed, abort */
> > -                   pm_printf(ALPM_LOG_ERROR, _("invalid option\n"));
> > +                   if(opt < OP_LONG_FLAG_MIN) {
> > +                           pm_printf(ALPM_LOG_ERROR, _("invalid option 
> > '-%c'\n"), opt);
> > +                   } else {
> > +                           pm_printf(ALPM_LOG_ERROR, _("invalid option 
> > '--%s'\n"),
> > +                                           opts[option_index].name);
> > +                   }
> >                     return result;
> 
> 
> I spent some time trying to get to this error.  I found tow ways to get
> there and both do not seem like this is actually the right error message:
> 
> allan@arya ~
> > pacman --color=foo
> error: invalid argument 'foo' for --color
> error: invalid option
> 
> allan@arya ~
> > pacman --debug=4
> error: '4' is not a valid debug level
> error: invalid option
> 
> How else can we get there?

Use a valid option with an operation that doesn't understand it such
as `pacman -T --quiet`.

Reply via email to