Skip to content

Commit fce1fa5

Browse files
zeertzjqchrisbra
authored andcommitted
patch 9.1.1155: Mode message not cleared after :silent message
Problem: Mode message not cleared after :silent message (after 9.0.1634). Solution: Don't reset mode_displayed when the message is empty. (zeertzjq) fixes: neovim/neovim#32641 closes: #16744 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
1 parent 0b82054 commit fce1fa5

5 files changed

Lines changed: 46 additions & 1 deletion

File tree

src/message.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1747,7 +1747,7 @@ msg_outtrans_len_attr(char_u *msgstr, int len, int attr)
17471747

17481748
// When drawing over the command line no need to clear it later or remove
17491749
// the mode message.
1750-
if (msg_row >= cmdline_row && msg_col == 0)
1750+
if (msg_silent == 0 && len > 0 && msg_row >= cmdline_row && msg_col == 0)
17511751
{
17521752
clear_cmdline = FALSE;
17531753
mode_displayed = FALSE;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
>f+0&#ffffff0|o@1|b|a|r| @68
2+
|~+0#4040ff13&| @73
3+
|~| @73
4+
|~| @73
5+
|~| @73
6+
|~| @73
7+
|~| @73
8+
|~| @73
9+
|~| @73
10+
|-+2#0000000&@1| |V|I|S|U|A|L| |-@1| +0&&@34|1| @8|1|,|1| @10|A|l@1|
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
>o+0&#ffffff0@1|b|a|r| @69
2+
|~+0#4040ff13&| @73
3+
|~| @73
4+
|~| @73
5+
|~| @73
6+
|~| @73
7+
|~| @73
8+
|~| @73
9+
|~| @73
10+
| +0#0000000&@56|1|,|1| @10|A|l@1|

src/testdir/test_messages.vim

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,29 @@ func Test_message_not_cleared_after_mode()
382382
call StopVimInTerminal(buf)
383383
endfunc
384384

385+
func Test_mode_cleared_after_silent_message()
386+
CheckRunVimInTerminal
387+
388+
let lines =<< trim END
389+
edit XsilentMessageMode.txt
390+
call setline(1, 'foobar')
391+
autocmd TextChanged * silent update
392+
END
393+
call writefile(lines, 'XsilentMessageMode', 'D')
394+
let buf = RunVimInTerminal('-S XsilentMessageMode', {'rows': 10})
395+
396+
call term_sendkeys(buf, 'v')
397+
call TermWait(buf)
398+
call VerifyScreenDump(buf, 'Test_mode_cleared_after_silent_message_1', {})
399+
400+
call term_sendkeys(buf, 'd')
401+
call TermWait(buf)
402+
call VerifyScreenDump(buf, 'Test_mode_cleared_after_silent_message_2', {})
403+
404+
call StopVimInTerminal(buf)
405+
call delete('XsilentMessageMode.txt')
406+
endfunc
407+
385408
" Test verbose message before echo command
386409
func Test_echo_verbose_system()
387410
CheckRunVimInTerminal

src/version.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,8 @@ static char *(features[]) =
704704

705705
static int included_patches[] =
706706
{ /* Add new patch number below this line */
707+
/**/
708+
1155,
707709
/**/
708710
1154,
709711
/**/

0 commit comments

Comments
 (0)