From db0ea1ab444c5e45fe02e1f2984aefc2eb613096 Mon Sep 17 00:00:00 2001 From: bfredl Date: Mon, 26 Sep 2022 10:40:34 +0200 Subject: fix(messages): validate msg_grid before silent! message with cmdheight=0 fixes #20316 --- src/nvim/message.c | 1 + test/functional/ui/cmdline_spec.lua | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/nvim/message.c b/src/nvim/message.c index 0b9cbfe474..b3e99d99a1 100644 --- a/src/nvim/message.c +++ b/src/nvim/message.c @@ -1401,6 +1401,7 @@ void msg_start(void) if (!msg_scroll && full_screen) { // overwrite last message if (cmdline_row >= Rows && !ui_has(kUIMessages)) { + msg_grid_validate(); msg_scroll_up(false, true); msg_scrolled++; cmdline_row = Rows - 1; diff --git a/test/functional/ui/cmdline_spec.lua b/test/functional/ui/cmdline_spec.lua index 92eb853686..3669352901 100644 --- a/test/functional/ui/cmdline_spec.lua +++ b/test/functional/ui/cmdline_spec.lua @@ -1183,4 +1183,17 @@ describe('cmdheight=0', function() {1:~ }| ]]} end) + + it('with silent! at startup', function() + clear{args={'-c', 'set cmdheight=0', '-c', 'autocmd VimEnter * silent! call Foo()'}} + screen:attach() + -- doesn't crash while not displaying silent! error message + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + ]]} + end) end) -- cgit