summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gdbmtool.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/gdbmtool.c b/src/gdbmtool.c
index e12b349..2fe5dda 100644
--- a/src/gdbmtool.c
+++ b/src/gdbmtool.c
@@ -1756,13 +1756,25 @@ help_handler (struct handler_param *param)
{
int i;
int n;
-
+ int optoff;
+
n = fprintf (fp, " %s", cmd->name);
-
+ optoff = n;
+
for (i = 0; i < NARGS && cmd->args[i].name; i++)
- n += fprintf (fp, " %s", gettext (cmd->args[i].name));
+ {
+ if (n >= CMDCOLS)
+ {
+ fputc ('\n', fp);
+ n = fprintf (fp, "%*.*s", optoff, optoff, "");
+ }
+ n += fprintf (fp, " %s", gettext (cmd->args[i].name));
+ }
+
if (n < CMDCOLS)
fprintf (fp, "%*.s", CMDCOLS-n, "");
+ else
+ fprintf (fp, "\n%*.*s", CMDCOLS, CMDCOLS, "");
fprintf (fp, " %s", gettext (cmd->doc));
fputc ('\n', fp);
}