diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-07-15 05:43:27 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-07-27 06:19:43 +0800 |
commit | 45e2bbae835fab479f8e900a2f9c7c47ae22caea (patch) | |
tree | 4dc2b53c2a36b603c4ebc7a9a4da39191d8781cc /test/functional/legacy/ex_mode_spec.lua | |
parent | 49d2256ae5b747830160a1dd1f3f532cf726b394 (diff) | |
download | rneovim-45e2bbae835fab479f8e900a2f9c7c47ae22caea.tar.gz rneovim-45e2bbae835fab479f8e900a2f9c7c47ae22caea.tar.bz2 rneovim-45e2bbae835fab479f8e900a2f9c7c47ae22caea.zip |
vim-patch:9.0.0051: using CTRL-C wih :append may hang Vim
Problem: Using CTRL-C wih :append may hang Vim.
Solution: Reset got_int. (closes vim/vim#10729, closes vim/vim#10728)
https://github.com/vim/vim/commit/f754fe6a3d5384b5146c38a32db6da9d46e00c40
Diffstat (limited to 'test/functional/legacy/ex_mode_spec.lua')
-rw-r--r-- | test/functional/legacy/ex_mode_spec.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/functional/legacy/ex_mode_spec.lua b/test/functional/legacy/ex_mode_spec.lua index 98f113bbd0..59f4a21f5f 100644 --- a/test/functional/legacy/ex_mode_spec.lua +++ b/test/functional/legacy/ex_mode_spec.lua @@ -6,6 +6,7 @@ local eq = helpers.eq local eval = helpers.eval local feed = helpers.feed local meths = helpers.meths +local sleep = helpers.sleep before_each(clear) @@ -122,4 +123,54 @@ describe('Ex mode', function() | ]]) end) + + it('pressing Ctrl-C in :append inside a loop in Ex mode does not hang', function() + local screen = Screen.new(60, 6) + screen:set_default_attr_ids({ + [0] = {bold = true, reverse = true}, -- MsgSeparator + [1] = {bold = true, foreground = Screen.colors.Blue}, -- NonText + }) + screen:attach() + feed('gQ') + feed('for i in range(1)<CR>') + feed('append<CR>') + screen:expect([[ + {0: }| + Entering Ex mode. Type "visual" to go to Normal mode. | + :for i in range(1) | + | + : append | + ^ | + ]]) + feed('<C-C>') + sleep(10) -- Wait for Ctrl-C to flush input + feed('foo<CR>') + screen:expect([[ + Entering Ex mode. Type "visual" to go to Normal mode. | + :for i in range(1) | + | + : append | + foo | + ^ | + ]]) + feed('.<CR>') + screen:expect([[ + :for i in range(1) | + | + : append | + foo | + . | + : ^ | + ]]) + feed('endfor<CR>') + feed('vi<CR>') + screen:expect([[ + ^foo | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]) + end) end) |