changeset 26875:e06cbcf4b94b v8.2.3966

patch 8.2.3966: when using feedkeys() abbreviations may be blocked Commit: https://github.com/vim/vim/commit/b37a65e4bf08c4eec4fa5b81a5efc3945fca44de Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 1 12:42:56 2022 +0000 patch 8.2.3966: when using feedkeys() abbreviations may be blocked Problem: When using feedkeys() abbreviations may be blocked. Solution: Reset tb_no_abbr_cnt when running out of characters. (closes #9448)
author Bram Moolenaar <Bram@vim.org>
date Sat, 01 Jan 2022 13:45:03 +0100
parents 64d54e4f7f6d
children 601a973ac16c
files src/getchar.c src/testdir/test_feedkeys.vim src/version.c
diffstat 3 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3239,6 +3239,9 @@ vgetorpeek(int advance)
 		    if (pending_exmode_active)
 			exmode_active = EXMODE_NORMAL;
 
+		    // no chars to block abbreviation for
+		    typebuf.tb_no_abbr_cnt = 0;
+
 		    break;
 		}
 
--- a/src/testdir/test_feedkeys.vim
+++ b/src/testdir/test_feedkeys.vim
@@ -13,4 +13,14 @@ func Test_feedkeys_x_with_empty_string()
   quit!
 endfunc
 
+func Test_feedkeys_with_abbreviation()
+  new
+  inoreabbrev trigger value
+  call feedkeys("atrigger ", 'x')
+  call feedkeys("atrigger ", 'x')
+  call assert_equal('value value ', getline(1))
+  bwipe!
+  iunabbrev trigger
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3966,
+/**/
     3965,
 /**/
     3964,