diff src/ex_cmds2.c @ 12459:937356f8f8d6 v8.0.1109

patch 8.0.1109: timer causes error on exit from Ex mode commit https://github.com/vim/vim/commit/f5291f301e9322545f0621b2157e93050d1d4fb3 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 14 22:55:37 2017 +0200 patch 8.0.1109: timer causes error on exit from Ex mode Problem: Timer causes error on exit from Ex mode. (xtal8) Solution: save and restore the ex_pressedreturn flag. (Christian Brabandt, closes #2079)
author Christian Brabandt <cb@256bit.org>
date Thu, 14 Sep 2017 23:00:04 +0200
parents ab0d827151a1
children 68d7bc045dbe
line wrap: on
line diff
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1224,6 +1224,7 @@ check_due_timer(void)
 	    int	save_must_redraw = must_redraw;
 	    int	save_trylevel = trylevel;
 	    int save_did_throw = did_throw;
+	    int save_ex_pressedreturn = get_pressedreturn();
 	    except_T *save_current_exception = current_exception;
 
 	    /* Create a scope for running the timer callback, ignoring most of
@@ -1257,6 +1258,7 @@ check_due_timer(void)
 		need_update_screen = TRUE;
 	    must_redraw = must_redraw > save_must_redraw
 					      ? must_redraw : save_must_redraw;
+	    set_pressedreturn(save_ex_pressedreturn);
 
 	    /* Only fire the timer again if it repeats and stop_timer() wasn't
 	     * called while inside the callback (tr_id == -1). */