aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Steven Schubiger <stsc@refcnt.org>2017-10-12 20:12:23 +0200
committerGravatar Steven Schubiger <stsc@refcnt.org>2017-10-12 20:12:23 +0200
commit5be3a186ada0999715b15e82fe401e82c96496c8 (patch)
tree06e08e207b0bd78e8d9d277b42d1e9ce3283f4c1
parentc49f01aa0f24af3579d60e8534fda6097e762277 (diff)
downloadcolorize-5be3a186ada0999715b15e82fe401e82c96496c8.tar.gz
colorize-5be3a186ada0999715b15e82fe401e82c96496c8.tar.bz2
print_help(): indicate which options require an argument
-rw-r--r--colorize.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/colorize.c b/colorize.c
index ff346b0..b9e5c49 100644
--- a/colorize.c
+++ b/colorize.c
@@ -506,13 +506,16 @@ print_hint (void)
static void
print_help (void)
{
- struct short_opt {
+ struct opt_data {
const char *name;
const char *short_opt;
+ const char *arg;
};
- const struct short_opt short_opts[] = {
- { "help", "h" },
- { "version", "V" },
+ const struct opt_data opts_data[] = {
+ { "attr", NULL, "=ATTR1,ATTR2,..." },
+ { "exclude-random", NULL, "=COLOR" },
+ { "help", "h", NULL },
+ { "version", "V", NULL },
};
const struct option *opt = long_opts;
unsigned int i;
@@ -538,16 +541,21 @@ print_help (void)
printf ("\n\tOptions\n");
for (; opt->name; opt++)
{
- const char *short_opt = NULL;
+ const struct opt_data *opt_data = NULL;
unsigned int i;
- for (i = 0; i < sizeof (short_opts) / sizeof (struct short_opt); i++)
- if (streq (opt->name, short_opts[i].name))
+ for (i = 0; i < sizeof (opts_data) / sizeof (struct opt_data); i++)
+ if (streq (opt->name, opts_data[i].name))
{
- short_opt = short_opts[i].short_opt;
+ opt_data = &opts_data[i];
break;
}
- if (short_opt)
- printf ("\t\t-%s, --%s\n", short_opt, opt->name);
+ if (opt_data)
+ {
+ if (opt_data->short_opt)
+ printf ("\t\t-%s, --%s\n", opt_data->short_opt, opt->name);
+ else
+ printf ("\t\t --%s%s\n", opt->name, opt_data->arg);
+ }
else
printf ("\t\t --%s\n", opt->name);
}