aboutsummaryrefslogtreecommitdiffstats
path: root/src/charon-cmd
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2013-04-22 11:20:58 +0200
committerMartin Willi <martin@revosec.ch>2013-05-06 15:54:29 +0200
commitd6b0c28b252a1312aea692f89a1ff0300c7ec9c9 (patch)
treeacc62fd45b947b3017c86467e2d55cc3052afa16 /src/charon-cmd
parent8e53682cd9def392e219845eccd6f44de5fb2303 (diff)
downloadstrongswan-d6b0c28b252a1312aea692f89a1ff0300c7ec9c9.tar.bz2
strongswan-d6b0c28b252a1312aea692f89a1ff0300c7ec9c9.tar.xz
charon-cmd: support multi-line help text for each option in usage
Diffstat (limited to 'src/charon-cmd')
-rw-r--r--src/charon-cmd/charon-cmd.c10
-rw-r--r--src/charon-cmd/cmd/cmd_options.h4
2 files changed, 12 insertions, 2 deletions
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];
};
/**