nano

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

commit c24545fe9aa52da28252e5ad420bbffd0b14a12a
parent 8fbadecf0a332dc2c4382b4a4d3eb86d98e0bce9
Author: David Lawrence Ramsey <address@hidden>
Date:   Thu,  9 Feb 2017 10:20:04 -0600

tweaks: always directly do a refresh when the margin changes

The previous code only directly refreshed the screen when the margin
changed due to toggling line numbering on.  When the margin changed
due to toggling it off, it would indirectly refresh via do_toggle().

Diffstat:
Msrc/nano.c | 24+++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)

diff --git a/src/nano.c b/src/nano.c @@ -1384,9 +1384,6 @@ void do_toggle(int flag) #ifndef DISABLE_COLOR case NO_COLOR_SYNTAX: #endif -#ifdef ENABLE_LINENUMBERS - case LINE_NUMBERS: -#endif case SOFTWRAP: refresh_needed = TRUE; break; @@ -2646,19 +2643,16 @@ int main(int argc, char **argv) int needed_margin = digits(openfile->filebot->lineno) + 1; /* Only enable line numbers when there is enough room for them. */ - if (ISSET(LINE_NUMBERS) && needed_margin < COLS - 3) { - if (needed_margin != margin) { - margin = needed_margin; - editwincols = COLS - margin; - /* The margin has changed -- schedule a full refresh. */ - refresh_needed = TRUE; - } - } else -#endif - { - margin = 0; - editwincols = COLS; + if (!ISSET(LINE_NUMBERS) || needed_margin > COLS - 4) + needed_margin = 0; + + if (needed_margin != margin) { + margin = needed_margin; + editwincols = COLS - margin; + /* The margin has changed -- schedule a full refresh. */ + refresh_needed = TRUE; } +#endif if (currmenu != MMAIN) display_main_list();