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();