arguments: improve some operations

parent a810dc80
...@@ -97,16 +97,6 @@ static void print_usage(const struct option longopts[], ...@@ -97,16 +97,6 @@ static void print_usage(const struct option longopts[],
fprintf(stderr, "Usage: %s ", a_args->progname); fprintf(stderr, "Usage: %s ", a_args->progname);
for (opt = longopts, i = 1; opt->name; opt++, i++) { 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, "["); fprintf(stderr, "[");
if (isprint(opt->val)) if (isprint(opt->val))
...@@ -114,18 +104,30 @@ static void print_usage(const struct option longopts[], ...@@ -114,18 +104,30 @@ static void print_usage(const struct option longopts[],
fprintf(stderr, "--%s", opt->name); fprintf(stderr, "--%s", opt->name);
if (opt->has_arg == required_argument) if ((opt->has_arg == required_argument) ||
fprintf(stderr, "=%s", uppername); (opt->has_arg == optional_argument)) {
int j;
char *uppername;
uppername = strdup(opt->name);
if (!uppername)
exit(-ENOMEM);
if (opt->has_arg == optional_argument) for (j = 0; uppername[j]; j++)
fprintf(stderr, "[=%s]", uppername); 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, "] "); fprintf(stderr, "] ");
if (!(i % 4)) if (!(i % 4))
fprintf(stderr, "\n\t"); fprintf(stderr, "\n\t");
free(uppername);
} }
fprintf(stderr, "\n"); fprintf(stderr, "\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment