Browse Source

Make help text spacing consistent.

Rob Landley 5 years ago
parent
commit
63a0e7afff
3 changed files with 17 additions and 10 deletions
  1. 1 1
      lib/help.c
  2. 14 7
      scripts/config2help.c
  3. 2 2
      toys/other/help.c

+ 1 - 1
lib/help.c

@@ -30,6 +30,6 @@ void show_help(FILE *out)
       i = toy_find(++s)-toy_list;
     }
 
-    fprintf(out, "%s", s);
+    fprintf(out, "%s\n", s);
   }
 }

+ 14 - 7
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;
       }

+ 2 - 2
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");