diff options
author | Horst Kronstorfer <hkronsto@frequentis.com> | 2011-12-05 00:55:24 +0000 |
---|---|---|
committer | Wolfgang Denk <wd@denx.de> | 2011-12-20 23:51:36 +0100 |
commit | 5e0c63e2e3e7a0aefb01d877dd7bb731ba6f00f1 (patch) | |
tree | 43a98a50fadd71b1546d62ab39cbf14a7b84448e /tools | |
parent | d30011bf6127903367e70f9bdcb95a2d3dd2dc9f (diff) |
mkenvimage: Fix getopt() error handling
Since the original implementation indicates explicit error handling
we turn off getopt()'s internal error messaging to avoid duplicate
error messages. Additionally we add ':' (missing option argument)
error handling.
Signed-off-by: Horst Kronstorfer <hkronsto@frequentis.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/mkenvimage.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/mkenvimage.c b/tools/mkenvimage.c index b7b0e0fade0..22d1b88ba2f 100644 --- a/tools/mkenvimage.c +++ b/tools/mkenvimage.c @@ -80,8 +80,11 @@ int main(int argc, char **argv) int fp, ep; + /* Turn off getopt()'s internal error message */ + opterr = 0; + /* Parse the cmdline */ - while ((option = getopt(argc, argv, "s:o:rbp:h")) != -1) { + while ((option = getopt(argc, argv, ":s:o:rbp:h")) != -1) { switch (option) { case 's': datasize = strtol(optarg, NULL, 0); @@ -106,8 +109,13 @@ int main(int argc, char **argv) case 'h': usage(argv[0]); return EXIT_SUCCESS; + case ':': + fprintf(stderr, "Missing argument for option -%c\n", + optopt); + usage(argv[0]); + return EXIT_FAILURE; default: - fprintf(stderr, "Wrong option -%c\n", option); + fprintf(stderr, "Wrong option -%c\n", optopt); usage(argv[0]); return EXIT_FAILURE; } |