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)
diff --git a/src/getchar.c b/src/getchar.c
index 209ee06..704d4d3 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -3239,6 +3239,9 @@
 		    if (pending_exmode_active)
 			exmode_active = EXMODE_NORMAL;
 
+		    // no chars to block abbreviation for
+		    typebuf.tb_no_abbr_cnt = 0;
+
 		    break;
 		}
 
diff --git a/src/testdir/test_feedkeys.vim b/src/testdir/test_feedkeys.vim
index 38b2f9f..f343b01 100644
--- a/src/testdir/test_feedkeys.vim
+++ b/src/testdir/test_feedkeys.vim
@@ -13,4 +13,14 @@
   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
diff --git a/src/version.c b/src/version.c
index 6499548..195c3d5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -750,6 +750,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3966,
+/**/
     3965,
 /**/
     3964,