[pacman-dev] [PATCH 3/7] include invalid options in error messages

Allan McRae allan at archlinux.org
Sat Oct 12 20:35:46 EDT 2013


On 13/10/13 10:12, Andrew Gregory wrote:
> 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 <andrew.gregory.8 at gmail.com>
>>> ---
>>>  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 at arya ~
>>> pacman --color=foo
>> error: invalid argument 'foo' for --color
>> error: invalid option
>>
>> allan at 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`.
> 

I like this patch, so accepted with the note that this output is bad
(but was bad in the first place...)

allan at arya /home/arch/code/pacman (working)
> ./src/pacman/pacman --color=foo
error: invalid argument 'foo' for --color
error: invalid option '--color'





More information about the pacman-dev mailing list