diff options
-rw-r--r-- | lib/help.c | 2 | ||||
-rw-r--r-- | scripts/config2help.c | 21 | ||||
-rw-r--r-- | toys/other/help.c | 4 |
3 files changed, 17 insertions, 10 deletions
@@ -30,6 +30,6 @@ void show_help(FILE *out) i = toy_find(++s)-toy_list; } - fprintf(out, "%s", s); + fprintf(out, "%s\n", s); } } diff --git a/scripts/config2help.c b/scripts/config2help.c index edb1caea..0eff7087 100644 --- a/scripts/config2help.c +++ b/scripts/config2help.c @@ -479,7 +479,7 @@ int main(int argc, char *argv[]) struct double_list *dd; if (sym->help) { - int i; + int i, blank; char *s; strcpy(s = xmalloc(strlen(sym->name)+1), sym->name); @@ -489,21 +489,28 @@ int main(int argc, char *argv[]) free(s); dd = sym->help; + blank = 0; for (;;) { - i = sym->help_indent; // Trim leading whitespace s = dd->data; - while (isspace(*s) && i) { - s++; - i--; + i = sym->help_indent; + while (isspace(*s) && i--) s++; + + // Only one blank line between nonblank lines, not at start or end. + if (!*s) blank = 2; + else { + while (blank--) { + putchar('\\'); + putchar('n'); + } + blank = 1; } + for (i=0; s[i]; i++) { if (s[i] == '"' || s[i] == '\\') putchar('\\'); putchar(s[i]); } - putchar('\\'); - putchar('n'); dd = dd->next; if (dd == sym->help) break; } diff --git a/toys/other/help.c b/toys/other/help.c index f7d84817..6ce1b02e 100644 --- a/toys/other/help.c +++ b/toys/other/help.c @@ -61,7 +61,7 @@ void help_main(void) if (toys.optflags & FLAG_h) { xprintf("<html>\n<title>Toybox command list</title>\n<body>\n<p>\n"); for (i=0; i < toys.toycount; i++) - xprintf("<a href=\"#%s\">%s</a>\n", toy_list[i].name, + xprintf("<a href=\"#%s\">%s\n</a>\n", toy_list[i].name, toy_list[i].name); xprintf("</p>\n"); } @@ -71,7 +71,7 @@ void help_main(void) else { memset(toybuf, '-', 78); memcpy(toybuf+3, toy_list[i].name, strlen(toy_list[i].name)); - printf("%s\n\n", toybuf); + printf("\n%s\n\n", toybuf); } do_help(toy_list+i); if (toys.optflags & FLAG_h) xprintf("</pre>\n"); |