1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-03-31 06:56:44 +02:00

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 )
This commit is contained in:
Bram Moolenaar 2022-06-16 13:04:45 +01:00
parent 308660bd26
commit 7a1d32809b
5 changed files with 28 additions and 3 deletions

View file

@ -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)

View file

@ -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)

View file

@ -0,0 +1,5 @@
> +0&#ffffff0@74
|~+0#4040ff13&| @73
|~| @73
|~| @73
| +0#0000000&@56|0|,|0|-|1| @8|A|l@1|

View file

@ -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()

View file

@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
5109,
/**/
5108,
/**/