summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-01 12:42:56 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-01 12:42:56 +0000
commitb37a65e4bf08c4eec4fa5b81a5efc3945fca44de (patch)
treeccfedbf5f1c6b17765f0fccb82e7ca057fce15ca
parentb79ee0c299d786627784f7304ba84b80e78ece26 (diff)
patch 8.2.3966: when using feedkeys() abbreviations may be blockedv8.2.3966
Problem: When using feedkeys() abbreviations may be blocked. Solution: Reset tb_no_abbr_cnt when running out of characters. (closes #9448)
-rw-r--r--src/getchar.c3
-rw-r--r--src/testdir/test_feedkeys.vim10
-rw-r--r--src/version.c2
3 files changed, 15 insertions, 0 deletions
diff --git a/src/getchar.c b/src/getchar.c
index 209ee06f07..704d4d3954 100644
--- 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;
}
diff --git a/src/testdir/test_feedkeys.vim b/src/testdir/test_feedkeys.vim
index 38b2f9f687..f343b0174c 100644
--- 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
diff --git a/src/version.c b/src/version.c
index 6499548706..195c3d5eea 100644
--- 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,