fix(messages): validate msg_grid before using msg_grid_pos (#26189)

This commit is contained in:
zeertzjq 2023-11-24 10:44:19 +08:00 committed by GitHub
parent a8a93e517f
commit 55dbf5c379
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 3 deletions

View File

@ -2990,10 +2990,13 @@ void msg_clr_eos_force(void)
int msg_startcol = (cmdmsg_rl) ? 0 : msg_col;
int msg_endcol = (cmdmsg_rl) ? Columns - msg_col : Columns;
// TODO(bfredl): ugly, this state should already been validated at this
// point. But msg_clr_eos() is called in a lot of places.
if (msg_grid.chars && msg_row < msg_grid_pos) {
// TODO(bfredl): ugly, this state should already been validated at this
// point. But msg_clr_eos() is called in a lot of places.
msg_row = msg_grid_pos;
msg_grid_validate();
if (msg_row < msg_grid_pos) {
msg_row = msg_grid_pos;
}
}
grid_fill(&msg_grid_adj, msg_row, msg_row + 1, msg_startcol, msg_endcol,

View File

@ -1402,6 +1402,19 @@ vimComment xxx match /\s"[^\-:.%#=*].*$/ms=s+1,lc=1 excludenl contains=@vim
]])
eq(1, meths.get_option_value('cmdheight', {}))
end)
it('using nvim_echo in VimResized does not cause hit-enter prompt #26139', function()
command([[au VimResized * lua vim.api.nvim_echo({ { '123456' } }, true, {})]])
screen:try_resize(60, 5)
screen:expect([[
^ |
{1:~ }|
{1:~ }|
{1:~ }|
|
]])
eq({ mode = 'n', blocking = false }, meths.get_mode())
end)
end)
it('calling screenstring() after redrawing between messages without UI #20999', function()