summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorHorst Kronstorfer <hkronsto@frequentis.com>2011-12-05 00:55:24 +0000
committerWolfgang Denk <wd@denx.de>2011-12-20 23:51:36 +0100
commit5e0c63e2e3e7a0aefb01d877dd7bb731ba6f00f1 (patch)
tree43a98a50fadd71b1546d62ab39cbf14a7b84448e /tools
parentd30011bf6127903367e70f9bdcb95a2d3dd2dc9f (diff)
downloadu-boot-5e0c63e2e3e7a0aefb01d877dd7bb731ba6f00f1.tar.gz
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.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/tools/mkenvimage.c b/tools/mkenvimage.c
index b7b0e0fade..22d1b88ba2 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;
}