Mercurial > vim
diff src/terminal.c @ 12441:854f49cf0abe v8.0.1100
patch 8.0.1100: stuck in redraw loop when 'lazyredraw' is set
commit https://github.com/vim/vim/commit/072412ed45aa20a67aaa7e387d7f6bf59c7d3fbe
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Sep 13 22:11:35 2017 +0200
patch 8.0.1100: stuck in redraw loop when 'lazyredraw' is set
Problem: Stuck in redraw loop when 'lazyredraw' is set.
Solution: Don't loop on update_screen() when not redrawing. (Yasuhiro
Matsumoto, closes #2082)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 13 Sep 2017 22:15:05 +0200 |
parents | 40961647f547 |
children | 65de672be458 |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -40,7 +40,9 @@ * TODO: * - patch to use GUI or cterm colors for vterm. Yasuhiro, #2067 * - patch to add tmap, jakalope (Jacob Askeland) #2073 - * - Redirecting output does not work on MS-Windows. + * - Redirecting output does not work on MS-Windows, Test_terminal_redir_file() + * is disabled. + * - test_terminal_no_cmd hangs (Christian) * - implement term_setsize() * - add test for giving error for invalid 'termsize' value. * - support minimal size when 'termsize' is "rows*cols". @@ -1543,7 +1545,8 @@ terminal_loop(void) /* TODO: skip screen update when handling a sequence of keys. */ /* Repeat redrawing in case a message is received while redrawing. */ while (curwin->w_redr_type != 0) - update_screen(0); + if (update_screen(0) == FAIL) + break; update_cursor(curbuf->b_term, FALSE); c = term_vgetc();