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@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@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`.
I like this patch, so accepted with the note that this output is bad (but was bad in the first place...) allan@arya /home/arch/code/pacman (working)
./src/pacman/pacman --color=foo error: invalid argument 'foo' for --color error: invalid option '--color'