From 7b7240d50dd5e418bc17beff48aa5681b398b980 Mon Sep 17 00:00:00 2001 From: gramanas Date: Fri, 14 Oct 2022 22:11:50 +0300 Subject: More changes --- src/foodopts.c | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/foodopts.c') diff --git a/src/foodopts.c b/src/foodopts.c index 7a4cbbd..338b97e 100644 --- a/src/foodopts.c +++ b/src/foodopts.c @@ -11,6 +11,20 @@ get_foodopt(int argc, char *const argv[], (struct option *)longopts, longindex); } +const char * +get_argument(const char opt, + const struct foodoption *longopts) +{ + int i = 0; + while ((longopts[i].name) + && (longopts[i].val)) { + if (longopts[i].val == opt) + return longopts[i].arg; + i++; + } + return NULL; +} + void foodopt_help(char * argv0, const struct foodoption *longopts) @@ -22,11 +36,14 @@ foodopt_help(char * argv0, int i = 0; while ((longopts[i].name) && (longopts[i].val)) { + if (longopts[i].category) { + fprintf(stderr, "\n%s:\n", longopts[i].category); + } fprintf(stderr, "-%c, --%s%s%s: %s\n", longopts[i].val, longopts[i].name, - longopts[i].has_arg == required_argument ? " " : "", - longopts[i].has_arg == required_argument ? longopts[i].arg : "", + (longopts[i].has_arg == required_argument || longopts[i].has_arg == optional_argument) ? " " : "", + (longopts[i].has_arg == required_argument || longopts[i].has_arg == optional_argument) ? longopts[i].arg : "", longopts[i].help); i++; } -- cgit v1.2.3