From 97d7e88f9ac7463b7b8def05dd658a8953d6cc0f Mon Sep 17 00:00:00 2001 From: Donghwa Jeong Date: Mon, 11 Jun 2018 11:10:58 +0900 Subject: [PATCH] arguments: improve some operations Signed-off-by: Donghwa Jeong --- src/lxc/tools/arguments.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/lxc/tools/arguments.c b/src/lxc/tools/arguments.c index 1dbb092a8..3541d4a82 100644 --- a/src/lxc/tools/arguments.c +++ b/src/lxc/tools/arguments.c @@ -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"); -- 2.47.2