diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-02-02 09:46:25 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-02-02 09:46:25 +0800 |
commit | 3e689737557ac968e1e62a92a22d33c887bc51bd (patch) | |
tree | d9362c7dbedc126f8e6a7bab7974742589355a1d /src | |
parent | f4300985d3212887ef27d703ba8cb4230813e095 (diff) | |
download | rneovim-3e689737557ac968e1e62a92a22d33c887bc51bd.tar.gz rneovim-3e689737557ac968e1e62a92a22d33c887bc51bd.tar.bz2 rneovim-3e689737557ac968e1e62a92a22d33c887bc51bd.zip |
vim-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 vim/vim#9448)
https://github.com/vim/vim/commit/b37a65e4bf08c4eec4fa5b81a5efc3945fca44de
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/getchar.c | 4 | ||||
-rw-r--r-- | src/nvim/testdir/test_feedkeys.vim | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c index d3641032ab..5d8a8ddbfe 100644 --- a/src/nvim/getchar.c +++ b/src/nvim/getchar.c @@ -2304,6 +2304,10 @@ static int vgetorpeek(bool advance) c = ESC; } tc = c; + + // no chars to block abbreviations for + typebuf.tb_no_abbr_cnt = 0; + break; } diff --git a/src/nvim/testdir/test_feedkeys.vim b/src/nvim/testdir/test_feedkeys.vim index 70500f2bb5..f343b0174c 100644 --- a/src/nvim/testdir/test_feedkeys.vim +++ b/src/nvim/testdir/test_feedkeys.vim @@ -12,3 +12,15 @@ func Test_feedkeys_x_with_empty_string() call assert_equal('foo', getline('.')) 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 |