From d6b0c28b252a1312aea692f89a1ff0300c7ec9c9 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Mon, 22 Apr 2013 11:20:58 +0200 Subject: charon-cmd: support multi-line help text for each option in usage --- src/charon-cmd/charon-cmd.c | 10 +++++++++- src/charon-cmd/cmd/cmd_options.h | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/charon-cmd/charon-cmd.c b/src/charon-cmd/charon-cmd.c index a493b17c7..5f27255a9 100644 --- a/src/charon-cmd/charon-cmd.c +++ b/src/charon-cmd/charon-cmd.c @@ -199,7 +199,7 @@ static void segv_handler(int signal) */ static void usage(FILE *out, char *msg, char *binary) { - int i, pre, post, padto = 0, spacing = 2; + int i, line, pre, post, padto = 0, spacing = 2; for (i = 0; i < CMD_OPT_COUNT; i++) { @@ -235,6 +235,14 @@ static void usage(FILE *out, char *msg, char *binary) pre, cmd_options[i].arg, post, padto - strlen(cmd_options[i].name) - strlen(cmd_options[i].arg), "", cmd_options[i].desc); + for (line = 0; line < countof(cmd_options[i].lines); line++) + { + if (cmd_options[i].lines[line]) + { + fprintf(out, "%-*s %s\n", + padto, "", cmd_options[i].lines[line]); + } + } } } diff --git a/src/charon-cmd/cmd/cmd_options.h b/src/charon-cmd/cmd/cmd_options.h index 3756225bf..6fa3fade4 100644 --- a/src/charon-cmd/cmd/cmd_options.h +++ b/src/charon-cmd/cmd/cmd_options.h @@ -52,8 +52,10 @@ struct cmd_option_t { int has_arg; /** decription of argument */ const char *arg; - /** description to option */ + /** short description to option */ const char *desc; + /** additional description lines */ + const char *lines[8]; }; /** -- cgit v1.2.3