if (eap->skip)
--emsg_skip;
+#ifdef HAS_MESSAGE_WINDOW
+ if (use_message_window() && eap->cmdidx != CMD_execute)
+ {
+ // show the message window now
+ ex_redraw(eap);
+ // do not overwrite messages
+ msg_didout = TRUE;
+ if (msg_col == 0)
+ msg_col = 1;
+ }
+#endif
set_nextcmd(eap, arg);
}
// After drawing the statusline screen_attr may still be set.
screen_stop_highlight();
- // Reset msg_didout, so that a message that's there is overwritten.
- msg_didout = FALSE;
- msg_col = 0;
+#ifdef HAS_MESSAGE_WINDOW
+ if (!use_message_window()) // append messages in the message window
+#endif
+ {
+ // Reset msg_didout, so that a message that's there is overwritten.
+ msg_didout = FALSE;
+ msg_col = 0;
+ }
// No need to wait after an intentional redraw.
need_wait_return = FALSE;
set cmdheight=0
set showmode
call setline(1, 'some text')
+ func ShowMessages()
+ echomsg 'some text'
+ sleep 100m
+ echomsg 'some more text'
+ sleep 2500m
+ echomsg 'even more text'
+ endfunc
END
call writefile(lines, 'XtestCmdheight')
let buf = RunVimInTerminal('-S XtestCmdheight', #{rows: 6})
call term_sendkeys(buf, ":w XsomeText\<CR>")
call VerifyScreenDump(buf, 'Test_cmdheight_zero_5', {})
+ call term_sendkeys(buf, ":call popup_clear()\<CR>")
+ call VerifyScreenDump(buf, 'Test_cmdheight_zero_6', {})
+
+ call term_sendkeys(buf, ":call ShowMessages()\<CR>")
+ call VerifyScreenDump(buf, 'Test_cmdheight_zero_7', {})
+ sleep 2
+ call VerifyScreenDump(buf, 'Test_cmdheight_zero_8', {})
+
" clean up
call StopVimInTerminal(buf)
call delete('XtestCmdheight')