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.
master
Benno Schulenberg 2016-11-12 15:57:42 +01:00
parent a4132e2e64
commit 7598b77e75
2 changed files with 6 additions and 4 deletions

View File

@ -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

View File

@ -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