commit 7598b77e75af321065102acdb016d567c00703dd
parent a4132e2e64e2777fe61a437fb4fa398837dca01a
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Sat, 12 Nov 2016 15:57:42 +0100
screen: use the correct width to determine whether a softwrap occurred
This fixes the two bugs reported by Anton Minaev
in https://savannah.gnu.org/bugs/?49511.
Diffstat:
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/nano.c b/src/nano.c
@@ -1936,10 +1936,10 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
#ifndef NANO_TINY
ensure_line_is_visible();
- /* Well, we might also need a full refresh if we've changed the
- * line length to be a new multiple of COLS. */
+ /* If the number of screen rows that a softwrapped line occupies
+ * has changed, we need a full refresh. */
if (ISSET(SOFTWRAP) && refresh_needed == FALSE)
- if (strlenpt(openfile->current->data) / COLS != orig_lenpt / COLS)
+ if (strlenpt(openfile->current->data) / editwincols != orig_lenpt / editwincols)
refresh_needed = TRUE;
#endif
diff --git a/src/text.c b/src/text.c
@@ -173,8 +173,10 @@ void do_deletion(undo_type action)
#ifndef NANO_TINY
ensure_line_is_visible();
+ /* If the number of screen rows that a softwrapped line occupies
+ * has changed, we need a full refresh. */
if (ISSET(SOFTWRAP) && refresh_needed == FALSE)
- if (strlenpt(openfile->current->data) / COLS != orig_lenpt / COLS)
+ if (strlenpt(openfile->current->data) / editwincols != orig_lenpt / editwincols)
refresh_needed = TRUE;
#endif