nano

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

commit 50616148b0aa323c50c0904315e2907cd740517f
parent 3e40e5d4b58a7db6b0c04eed9668c5074c2ab977
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Thu, 25 Aug 2016 20:02:35 +0200

prompt: recompose the statusbar text whenever the window size changes

This fixes https://savannah.gnu.org/bugs/?48796.

Diffstat:
Msrc/prompt.c | 10+++++++---
1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/prompt.c b/src/prompt.c @@ -563,10 +563,12 @@ functionptrtype get_prompt_string(int *actual, bool allow_tabs, assert(statusbar_x <= strlen(answer)); #ifndef NANO_TINY + /* If the window size changed, go reformat the prompt string. */ if (kbinput == KEY_WINCH) { refresh_func(); - update_the_statusbar(); - continue; + *actual = KEY_WINCH; + free(magichistory); + return NULL; } #endif func = func_from_key(&kbinput); @@ -706,7 +708,7 @@ int do_prompt(bool allow_tabs, void (*refresh_func)(void), const char *msg, ...) { va_list ap; - int retval; + int retval = KEY_WINCH; functionptrtype func; #ifndef DISABLE_TABCOMP bool listed = FALSE; @@ -717,6 +719,7 @@ int do_prompt(bool allow_tabs, bottombars(menu); + while (retval == KEY_WINCH) { prompt = charalloc((COLS * mb_cur_max()) + 1); va_start(ap, msg); vsnprintf(prompt, COLS * mb_cur_max(), msg, ap); @@ -735,6 +738,7 @@ int do_prompt(bool allow_tabs, free(prompt); prompt = NULL; + } /* If we're done with this prompt, restore the x position to what * it was at a possible previous prompt. */