Mercurial > vim
changeset 29179:432e1535ef2c v8.2.5109
patch 8.2.5109: mode not updated after CTRL-O CTRL-C in Insert mode
Commit: https://github.com/vim/vim/commit/7a1d32809bb5c1527314000983e75125d79192e0
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Jun 16 13:04:45 2022 +0100
patch 8.2.5109: mode not updated after CTRL-O CTRL-C in Insert mode
Problem: Mode not updated after CTRL-O CTRL-C in Insert mode.
Solution: Set redraw_mode and use it. (closes https://github.com/vim/vim/issues/10581)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 16 Jun 2022 14:15:03 +0200 |
parents | 5c6a9452357f |
children | e2fe9d2d2b78 |
files | src/main.c src/normal.c src/testdir/dumps/Test_mode_updated_1.dump src/testdir/test_normal.vim src/version.c |
diffstat | 5 files changed, 28 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main.c +++ b/src/main.c @@ -1419,7 +1419,7 @@ main_loop( update_screen(0); mch_enable_flush(); } - else if (redraw_cmdline || clear_cmdline) + else if (redraw_cmdline || clear_cmdline || redraw_mode) showmode(); redraw_statuslines(); if (need_maketitle)
--- a/src/normal.c +++ b/src/normal.c @@ -6788,6 +6788,9 @@ nv_esc(cmdarg_T *cap) msg(_("Type :qa and press <Enter> to exit Vim")); } + if (restart_edit != 0) + redraw_mode = TRUE; // remove "-- (insert) --" + // Don't reset "restart_edit" when 'insertmode' is set, it won't be // set again below when halfway a mapping. if (!p_im)
new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_mode_updated_1.dump @@ -0,0 +1,5 @@ +> +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +| +0#0000000&@56|0|,|0|-|1| @8|A|l@1|
--- a/src/testdir/test_normal.vim +++ b/src/testdir/test_normal.vim @@ -4,6 +4,7 @@ source shared.vim source check.vim source view_util.vim import './vim9.vim' as v9 +source screendump.vim func Setup_NewWindow() 10new @@ -2458,9 +2459,9 @@ func Test_normal33_g_cmd2() call assert_equal(2, line('.')) call assert_fails(':norm! g;', 'E662:') call assert_fails(':norm! g,', 'E663:') - let &ul=&ul + let &ul = &ul call append('$', ['a', 'b', 'c', 'd']) - let &ul=&ul + let &ul = &ul call append('$', ['Z', 'Y', 'X', 'W']) let a = execute(':changes') call assert_match('2\s\+0\s\+2', a) @@ -3266,6 +3267,20 @@ func Test_message_when_using_ctrl_c() bwipe! endfunc +func Test_mode_updated_after_ctrl_c() + CheckScreendump + + let buf = RunVimInTerminal('', {'rows': 5}) + call term_sendkeys(buf, "i") + call term_sendkeys(buf, "\<C-O>") + " wait a moment so that the "-- (insert) --" message is displayed + call TermWait(buf, 50) + call term_sendkeys(buf, "\<C-C>") + call VerifyScreenDump(buf, 'Test_mode_updated_1', {}) + + call StopVimInTerminal(buf) +endfunc + " Test for '[m', ']m', '[M' and ']M' " Jumping to beginning and end of methods in Java-like languages func Test_java_motion()