aboutsummaryrefslogtreecommitdiff
path: root/src/_usage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/_usage.c')
-rw-r--r--src/_usage.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/_usage.c b/src/_usage.c
index 6b96510d..78d1e337 100644
--- a/src/_usage.c
+++ b/src/_usage.c
@@ -20,9 +20,18 @@ static void usage (int exit_status)
for (i = 0; longopts[i].name; ++i) {
int len = printf (" -%c, --%s %s", longopts[i].val, longopts[i].name,
has_arg[longopts[i].has_arg]);
- while (++len < 37)
- printf (" ");
- puts (longopts_help[i]);
+
+ char *lo = xstrdup (longopts_help[i]);
+ char *p = lo;
+ char *token;
+
+ while ((token = strsep (&p, "\n"))) {
+ while (++len < 37)
+ printf (" ");
+ puts (token);
+ len = 0;
+ }
+ free (lo);
}
exit (exit_status);
}