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

This commit is contained in:
zeertzjq authored and GitHub committed 2023-11-24 10:44:19 +08:00
1 parent a8a93e517f
commit 55dbf5c379
2 files changed
+19 -3

No files matched your search

+6 -3
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,
+13
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()