nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit 96baa70cc850134ebc490c9a22e27e7dc8fbfec3
parent b18e2129ce9958d4b533f8f5762b534a72952163
Author: Benno Schulenberg <bensberg@telfort.nl>
Date:   Mon, 13 May 2019 12:07:32 +0200

tweaks: reshuffle a couple of lines and adjust a few comments

Also, compute the required space for the keystrokes more tightly:
most of those characters are plain ASCII, so that means 17 bytes
for 17 cells, and at most one of those characters is a three-byte
arrow, which means 2 bytes extra.  Adding the two newlines at the
end, the needed room besides the description is 21 bytes.

Diffstat:
Msrc/global.c | 4+---
Msrc/help.c | 26++++++++++++--------------
2 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/src/global.c b/src/global.c @@ -1144,12 +1144,10 @@ void shortcut_init(void) add_to_sclist(MMOST|MHELP|MBROWSER, "\xE2\x96\xb6", KEY_RIGHT, do_right, 0); add_to_sclist(MSOME, "^\xE2\x97\x80", CONTROL_LEFT, do_prev_word_void, 0); add_to_sclist(MSOME, "^\xE2\x96\xb6", CONTROL_RIGHT, do_next_word_void, 0); -#ifndef NANO_TINY -#ifdef ENABLE_MULTIBUFFER +#if !defined(NANO_TINY) && defined(ENABLE_MULTIBUFFER) add_to_sclist(MMAIN, "M-\xE2\x97\x80", ALT_LEFT, switch_to_prev_buffer, 0); add_to_sclist(MMAIN, "M-\xE2\x96\xb6", ALT_RIGHT, switch_to_next_buffer, 0); #endif -#endif } else #endif { diff --git a/src/help.c b/src/help.c @@ -464,22 +464,22 @@ void help_init(void) allocsize += strlen(htx[2]); /* Calculate the length of the shortcut help text. Each entry has - * one or two keys, which fill 16 columns, plus translated text, + * one or two keys, which fill 17 cells, plus translated text, * plus one or two \n's. */ for (f = allfuncs; f != NULL; f = f->next) if (f->menus & currmenu) - allocsize += (17 * MAXCHARLEN) + strlen(_(f->help)) + 2; + allocsize += strlen(_(f->help)) + 21; #ifndef NANO_TINY /* If we're on the main list, we also count the toggle help text. - * Each entry has "M-%c\t\t", five chars which fill 16 columns, - * plus a space, plus translated text, plus one or two '\n's. */ + * Each entry has "M-%c\t\t ", six chars which fill 17 cells, plus + * two translated texts, plus a space, plus one or two '\n's. */ if (currmenu == MMAIN) { - size_t endis_len = strlen(_("enable/disable")); + size_t onoff_len = strlen(_("enable/disable")); for (s = sclist; s != NULL; s = s->next) if (s->func == do_toggle_void) - allocsize += strlen(_(flagtostr(s->toggle))) + endis_len + 8; + allocsize += strlen(_(flagtostr(s->toggle))) + onoff_len + 9; } #endif @@ -493,23 +493,21 @@ void help_init(void) if (htx[2] != NULL) strcat(help_text, htx[2]); - ptr = help_text + strlen(help_text); - /* Remember this end-of-introduction, start-of-shortcuts. */ - end_of_intro = ptr; + end_of_intro = help_text + strlen(help_text); + ptr = end_of_intro; - /* Now add our shortcut info. */ + /* Now add the shortcuts and their descriptions. */ for (f = allfuncs; f != NULL; f = f->next) { int tally = 0; if ((f->menus & currmenu) == 0) continue; - /* Let's simply show the first two shortcuts from the list. */ + /* Show the first two shortcuts (if any) for each function. */ for (s = sclist; s != NULL; s = s->next) { if ((s->menus & currmenu) && s->func == f->func) { - /* Make the first column narrower (6) than the second (10), - * but allow it to spill into the second, for "M-Space". */ + /* Make the first column 7 cells wide and the second 10. */ if (++tally == 1) { sprintf(ptr, "%s ", s->keystr); /* Unicode arrows take three bytes instead of one. */ @@ -527,7 +525,7 @@ void help_init(void) else if (tally == 1) ptr += 10; - /* The shortcut's help text. */ + /* The shortcut's description. */ ptr += sprintf(ptr, "%s\n", _(f->help)); if (f->blank_after)