From ac6078445f5aeaf6e9d94305358a0337de653d24 Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Sat, 11 Aug 2012 21:11:41 +0200 Subject: [PATCH] conf: be more verbose about wrong arguments We didn't handle the case that an argument has a parameter but doesn't need one. Signed-off-by: David Herrmann --- src/conf.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/conf.c b/src/conf.c index 426da14..2845237 100644 --- a/src/conf.c +++ b/src/conf.c @@ -297,15 +297,18 @@ int conf_parse_argv(int argc, char **argv) if (c <= 0) { break; } else if (c == ':') { - fprintf(stderr, "Missing argument for option %s\n", + fprintf(stderr, "Missing argument for: %s\n", argv[optind - 1]); return -EFAULT; } else if (c == '?') { - if (optopt) - fprintf(stderr, "Unknown argument -%c\n", + if (optopt && optopt < 100000) + fprintf(stderr, "Unknown argument: -%c\n", optopt); + else if (!optopt) + fprintf(stderr, "Unknown argument: %s\n", + argv[optind - 1]); else - fprintf(stderr, "Unknown argument %s\n", + fprintf(stderr, "Parameter takes no argument: %s\n", argv[optind - 1]); return -EFAULT; } else if (c < 100000) {