1
1

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.
Этот коммит содержится в:
Benno Schulenberg 2016-11-12 15:57:42 +01:00
родитель a4132e2e64
Коммит 7598b77e75
2 изменённых файлов: 6 добавлений и 4 удалений

Просмотреть файл

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

Просмотреть файл

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