1
0
forked from aniani/vim

patch 8.2.4156: fileinfo message overwrites echo'ed message

Problem:    Fileinfo message overwrites echo'ed message.
Solution:   Reset need_fileinfo when displaying a message. (Rob Pilling,
            closes #9569)
This commit is contained in:
Rob Pilling 2022-01-20 14:44:38 +00:00 committed by Bram Moolenaar
parent 7e93577a95
commit 726f7f91fd
4 changed files with 46 additions and 0 deletions

View File

@ -181,6 +181,8 @@ msg_attr_keep(
< (int)(Rows - cmdline_row - 1) * Columns + sc_col)
set_keep_msg((char_u *)s, 0);
need_fileinfo = FALSE;
vim_free(buf);
--entered;
return retval;
@ -1420,7 +1422,10 @@ msg_start(void)
int did_return = FALSE;
if (!msg_silent)
{
VIM_CLEAR(keep_msg);
need_fileinfo = FALSE;
}
#ifdef FEAT_EVAL
if (need_clr_eos)
@ -2163,6 +2168,8 @@ msg_puts_attr_len(char *str, int maxlen, int attr)
msg_puts_printf((char_u *)str, maxlen);
else
msg_puts_display((char_u *)str, maxlen, attr, FALSE);
need_fileinfo = FALSE;
}
/*

View File

@ -0,0 +1,6 @@
>h+0&#ffffff0|i| @72
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|'+0#0000000&|b|'| |w|r|i|t@1|e|n| @45|1|,|1| @10|A|l@1|

View File

@ -344,4 +344,35 @@ func Test_echo_string_partial()
call assert_equal("function('CountSpaces', [{'ccccccccccc': ['ab', 'cd'], 'aaaaaaaaaaa': v:false, 'bbbbbbbbbbbb': ''}])", string(function('CountSpaces', [#{aaaaaaaaaaa: v:false, bbbbbbbbbbbb: '', ccccccccccc: ['ab', 'cd']}])))
endfunc
" Message output was previously overwritten by the fileinfo display, shown
" when switching buffers. If a buffer is switched to, then a message if
" echoed, we should show the message, rather than overwriting it with
" fileinfo.
func Test_fileinfo_after_echo()
CheckScreendump
let content =<< trim END
file a.txt
hide edit b.txt
call setline(1, "hi")
setlocal modified
hide buffer a.txt
set updatetime=1
autocmd CursorHold * b b.txt | w | echo "'b' written"
END
call writefile(content, 'Xtest_fileinfo_after_echo')
let buf = RunVimInTerminal('-S Xtest_fileinfo_after_echo', #{rows: 6})
call VerifyScreenDump(buf, 'Test_fileinfo_after_echo', {})
call term_sendkeys(buf, ":q\<CR>")
" clean up
call StopVimInTerminal(buf)
call delete('Xtest_fileinfo_after_echo')
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

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