]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
arguments: improve some operations 2393/head
authorDonghwa Jeong <dh48.jeong@samsung.com>
Mon, 11 Jun 2018 02:10:58 +0000 (11:10 +0900)
committerDonghwa Jeong <dh48.jeong@samsung.com>
Mon, 11 Jun 2018 02:10:58 +0000 (11:10 +0900)
Signed-off-by: Donghwa Jeong <dh48.jeong@samsung.com>
src/lxc/tools/arguments.c

index 1dbb092a869246a2323450fccd7e026ed8c773b9..3541d4a823303229420da9660a3364575e583f74 100644 (file)
@@ -97,16 +97,6 @@ static void print_usage(const struct option longopts[],
        fprintf(stderr, "Usage: %s ", a_args->progname);
 
        for (opt = longopts, i = 1; opt->name; opt++, i++) {
-               int j;
-               char *uppername;
-
-               uppername = strdup(opt->name);
-               if (!uppername)
-                       exit(-ENOMEM);
-
-               for (j = 0; uppername[j]; j++)
-                       uppername[j] = toupper(uppername[j]);
-
                fprintf(stderr, "[");
 
                if (isprint(opt->val))
@@ -114,18 +104,30 @@ static void print_usage(const struct option longopts[],
 
                fprintf(stderr, "--%s", opt->name);
 
-               if (opt->has_arg == required_argument)
-                       fprintf(stderr, "=%s", uppername);
+               if ((opt->has_arg == required_argument) ||
+                   (opt->has_arg == optional_argument)) {
+                       int j;
+                       char *uppername;
+
+                       uppername = strdup(opt->name);
+                       if (!uppername)
+                               exit(-ENOMEM);
 
-               if (opt->has_arg == optional_argument)
-                       fprintf(stderr, "[=%s]", uppername);
+                       for (j = 0; uppername[j]; j++)
+                               uppername[j] = toupper(uppername[j]);
+
+                       if (opt->has_arg == required_argument)
+                               fprintf(stderr, "=%s", uppername);
+                       else    // optional_argument
+                               fprintf(stderr, "[=%s]", uppername);
+
+                       free(uppername);
+               }
 
                fprintf(stderr, "] ");
 
                if (!(i % 4))
                        fprintf(stderr, "\n\t");
-
-               free(uppername);
        }
 
        fprintf(stderr, "\n");