1
0
Fork 0

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>
utp
Horst Kronstorfer 2011-12-05 00:55:24 +00:00 committed by Wolfgang Denk
parent d30011bf61
commit 5e0c63e2e3
1 changed files with 10 additions and 2 deletions

View File

@ -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;
}