changeset 8808:6b70b9cdebfc v7.4.1692

commit https://github.com/vim/vim/commit/9bd547aca41799605c3a3f83444f6725c2d6eda9 Author: Bram Moolenaar <Bram@vim.org> Date: Fri Apr 1 21:00:48 2016 +0200 patch 7.4.1692 Problem: feedkeys('i', 'x') gets stuck, waits for a character to be typed. Solution: Behave like ":normal". (Yasuhiro Matsumoto)
author Christian Brabandt <cb@256bit.org>
date Fri, 01 Apr 2016 21:15:05 +0200
parents 6b2aa7c200d7
children cf5e575309da
files src/eval.c src/testdir/test_feedkeys.vim src/version.c
diffstat 3 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -11368,7 +11368,10 @@ f_feedkeys(typval_T *argvars, typval_T *
 
 		/* Avoid a 1 second delay when the keys start Insert mode. */
 		msg_scroll = FALSE;
+
+		++ex_normal_busy;
 		exec_normal(TRUE);
+		--ex_normal_busy;
 		msg_scroll |= save_msg_scroll;
 	    }
 	}
--- a/src/testdir/test_feedkeys.vim
+++ b/src/testdir/test_feedkeys.vim
@@ -6,5 +6,9 @@ func Test_feedkeys_x_with_empty_string()
   call assert_equal('', getline('.'))
   call feedkeys('', 'x')
   call assert_equal('foo', getline('.'))
+
+  " check it goes back to normal mode immediately.
+  call feedkeys('i', 'x')
+  call assert_equal('foo', getline('.'))
   quit!
 endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1692,
+/**/
     1691,
 /**/
     1690,