]> www.infradead.org Git - mtd-utils.git/commitdiff
nand{dump, test, write}: clean up --help handling
authorMike Frysinger <vapier@gentoo.org>
Wed, 8 May 2013 23:02:03 +0000 (19:02 -0400)
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
Mon, 1 Jul 2013 06:00:32 +0000 (09:00 +0300)
We should send the output to stdout when the user passes -h/--help
and then exit(0), but otherwise the output should go to stderr and
then exit(1).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
nanddump.c
nandtest.c
nandwrite.c

index 4b3e14d7711ceb7749d98b9bdb78da8eaac07a22..4ee7ed409d1eaacf6e5ba698a8adced05eed784a 100644 (file)
 #include "common.h"
 #include <libmtd.h>
 
-static void display_help(void)
+static void display_help(int status)
 {
-       printf(
+       fprintf(status == EXIT_SUCCESS ? stdout : stderr,
 "Usage: %s [OPTIONS] MTD-device\n"
 "Dumps the contents of a nand mtd partition.\n"
 "\n"
-"           --help               Display this help and exit\n"
+"-h         --help               Display this help and exit\n"
 "           --version            Output version information and exit\n"
 "           --bb=METHOD          Choose bad block handling method (see below).\n"
 "-a         --forcebinary        Force printing of binary data to tty\n"
@@ -58,7 +58,7 @@ static void display_help(void)
 "    dumpbad: dump flash data, including any bad blocks\n"
 "    skipbad: dump good data, completely skipping any bad blocks (default)\n",
        PROGRAM_NAME);
-       exit(EXIT_SUCCESS);
+       exit(status);
 }
 
 static void display_version(void)
@@ -101,12 +101,12 @@ static void process_options(int argc, char * const argv[])
 
        for (;;) {
                int option_index = 0;
-               static const char *short_options = "s:f:l:opqnca";
+               static const char short_options[] = "hs:f:l:opqnca";
                static const struct option long_options[] = {
-                       {"help", no_argument, 0, 0},
                        {"version", no_argument, 0, 0},
                        {"bb", required_argument, 0, 0},
                        {"omitoob", no_argument, 0, 0},
+                       {"help", no_argument, 0, 'h'},
                        {"forcebinary", no_argument, 0, 'a'},
                        {"canonicalprint", no_argument, 0, 'c'},
                        {"file", required_argument, 0, 'f'},
@@ -129,12 +129,9 @@ static void process_options(int argc, char * const argv[])
                        case 0:
                                switch (option_index) {
                                        case 0:
-                                               display_help();
-                                               break;
-                                       case 1:
                                                display_version();
                                                break;
-                                       case 2:
+                                       case 1:
                                                /* Handle --bb=METHOD */
                                                if (!strcmp(optarg, "padbad"))
                                                        bb_method = padbad;
@@ -145,7 +142,7 @@ static void process_options(int argc, char * const argv[])
                                                else
                                                        error++;
                                                break;
-                                       case 3: /* --omitoob */
+                                       case 2: /* --omitoob */
                                                if (oob_default) {
                                                        oob_default = false;
                                                        omitoob = true;
@@ -186,6 +183,9 @@ static void process_options(int argc, char * const argv[])
                        case 'n':
                                noecc = true;
                                break;
+                       case 'h':
+                               display_help(EXIT_SUCCESS);
+                               break;
                        case '?':
                                error++;
                                break;
@@ -213,7 +213,7 @@ static void process_options(int argc, char * const argv[])
        }
 
        if ((argc - optind) != 1 || error)
-               display_help();
+               display_help(EXIT_FAILURE);
 
        mtddev = argv[optind];
 }
index 3437b57eee4943df3c5e052436d1991a6a6d5f36..1876bb29949e205e6ee6d2071242c8c825efad03 100644 (file)
 #include <asm/types.h>
 #include "mtd/mtd-user.h"
 
-void usage(void)
+void usage(int status)
 {
-       fprintf(stderr, "usage: %s [OPTIONS] <device>\n\n"
+       fprintf(status ? stderr : stdout,
+               "usage: %s [OPTIONS] <device>\n\n"
                "  -h, --help           Display this help output\n"
                "  -m, --markbad        Mark blocks bad if they appear so\n"
                "  -s, --seed           Supply random seed\n"
@@ -27,7 +28,7 @@ void usage(void)
                "  -l, --length         Length of flash to test\n"
                "  -k, --keep           Restore existing contents after test\n",
                PROGRAM_NAME);
-       exit(1);
+       exit(status);
 }
 
 struct mtd_info_user meminfo;
@@ -142,7 +143,7 @@ int main(int argc, char **argv)
        seed = time(NULL);
 
        for (;;) {
-               static const char *short_options="hkl:mo:p:s:";
+               static const char short_options[] = "hkl:mo:p:s:";
                static const struct option long_options[] = {
                        { "help", no_argument, 0, 'h' },
                        { "markbad", no_argument, 0, 'm' },
@@ -160,8 +161,11 @@ int main(int argc, char **argv)
 
                switch (c) {
                case 'h':
+                       usage(0);
+                       break;
+
                case '?':
-                       usage();
+                       usage(1);
                        break;
 
                case 'm':
@@ -191,7 +195,7 @@ int main(int argc, char **argv)
                }
        }
        if (argc - optind != 1)
-               usage();
+               usage(1);
 
        fd = open(argv[optind], O_RDWR);
        if (fd < 0) {
index a6b6581c472641a6833409eb5396e89169f99e26..edf9f83f1ea8acf1146c40b1ee20ae4dc097b7a8 100644 (file)
@@ -42,9 +42,9 @@
 #include "common.h"
 #include <libmtd.h>
 
-static void display_help(void)
+static void display_help(int status)
 {
-       printf(
+       fprintf(status == EXIT_SUCCESS ? stdout : stderr,
 "Usage: nandwrite [OPTION] MTD_DEVICE [INPUTFILE|-]\n"
 "Writes to the specified MTD device.\n"
 "\n"
@@ -58,10 +58,10 @@ static void display_help(void)
 "  -p, --pad               Pad to page size\n"
 "  -b, --blockalign=1|2|4  Set multiple of eraseblocks to align to\n"
 "  -q, --quiet             Don't display progress messages\n"
-"      --help              Display this help and exit\n"
+"  -h, --help              Display this help and exit\n"
 "      --version           Output version information and exit\n"
        );
-       exit(EXIT_SUCCESS);
+       exit(status);
 }
 
 static void display_version(void)
@@ -99,10 +99,10 @@ static void process_options(int argc, char * const argv[])
 
        for (;;) {
                int option_index = 0;
-               static const char *short_options = "b:mnNoOpqs:a";
+               static const char short_options[] = "hb:mnNoOpqs:a";
                static const struct option long_options[] = {
-                       {"help", no_argument, 0, 0},
                        {"version", no_argument, 0, 0},
+                       {"help", no_argument, 0, 'h'},
                        {"blockalign", required_argument, 0, 'b'},
                        {"markbad", no_argument, 0, 'm'},
                        {"noecc", no_argument, 0, 'n'},
@@ -124,12 +124,9 @@ static void process_options(int argc, char * const argv[])
                switch (c) {
                case 0:
                        switch (option_index) {
-                               case 0:
-                                       display_help();
-                                       break;
-                               case 1:
-                                       display_version();
-                                       break;
+                       case 0: /* --version */
+                               display_version();
+                               break;
                        }
                        break;
                case 'q':
@@ -163,6 +160,9 @@ static void process_options(int argc, char * const argv[])
                case 'a':
                        autoplace = true;
                        break;
+               case 'h':
+                       display_help(EXIT_SUCCESS);
+                       break;
                case '?':
                        error++;
                        break;
@@ -192,7 +192,7 @@ static void process_options(int argc, char * const argv[])
         */
 
        if (argc < 1 || argc > 2 || error)
-               display_help();
+               display_help(EXIT_FAILURE);
 
        mtd_device = argv[0];