]> git.wh0rd.org Git - nano.git/commitdiff
- nano.c:help_init() - Fix crashing in do_help when COLS < 23 (David Benbennick)
authorChris Allegretta <chrisa@asty.org>
Mon, 10 Feb 2003 02:32:58 +0000 (02:32 +0000)
committerChris Allegretta <chrisa@asty.org>
Mon, 10 Feb 2003 02:32:58 +0000 (02:32 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@1441 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
nano.c

index 528db07f83909c377936e5af6ffb84257209884f..6312858db9566b1afc996bebc161c4af76218e14 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,8 @@ CVS code
   main()
        - Fix nano not compiling with ENABLE_RCFILE and DISABLE_TABCOMP
          (David Benbennick).
+  help_init()
+       - Fix crashing in do_help when COLS < 23 (David Benbennick).
 - rcfile.c:
   colortoint()
        - Don't bomb after invalid color and print bad color name
diff --git a/nano.c b/nano.c
index e80ee1d5101107542e556ac7ecc3be61b4d06110..07217646e2c34ca4d94055a011e0a51365d1db32 100644 (file)
--- a/nano.c
+++ b/nano.c
@@ -389,9 +389,12 @@ void help_init(void)
     /* If we're on the main list, we also count the toggle help text. 
      * Each line has "M-%c\t\t\t", which fills 24 columns, plus at most
      * COLS - 24 characters, plus '\n'.*/
-    if (currshortcut == main_list)
+    if (currshortcut == main_list) {
+       size_t endislen = strlen(_("enable/disable"));
+
        for (t = toggles; t != NULL; t = t->next)
-           allocsize += COLS - 17;
+           allocsize += 8 + strlen(t->desc) + endislen;
+    }
 #endif /* !NANO_SMALL */
 
     /* help_text has been freed and set to NULL unless the user resized
@@ -448,16 +451,16 @@ void help_init(void)
        *(ptr++) = '\t';
 
        assert(s->help != NULL);
-       ptr += sprintf(ptr, "%.*s\n", COLS - 24, s->help);
+       ptr += sprintf(ptr, "%.*s\n", COLS > 24 ? COLS - 24 : 0, s->help);
     }
 
 #ifndef NANO_SMALL
     /* And the toggles... */
     if (currshortcut == main_list)
        for (t = toggles; t != NULL; t = t->next) {
-           ptr += sprintf(ptr, "M-%c\t\t\t", t->val - 32);
            assert(t->desc != NULL);
-           ptr += sprintf(ptr, _("%.*s enable/disable\n"), COLS - 24, t->desc);
+           ptr += sprintf(ptr, "M-%c\t\t\t%s %s\n", t->val - 32, t->desc,
+                               _("enable/disable"));
        }
 #endif /* !NANO_SMALL */