mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
vim-patch:9.1.0855: setting 'cmdheight' may missing output (#31216)
Problem: setting 'cmdheight' may cause hit-enter-prompt and echo output
to be missing
Solution: Before cleaning the cmdline, check the need_wait_return flag
(nwounkn)
closes: vim/vim#13432
2e48567007
Co-authored-by: nwounkn <nwounkn@gmail.com>
This commit is contained in:
parent
fa0dcde3d9
commit
54c85bcb6d
@ -6814,11 +6814,13 @@ void command_height(void)
|
|||||||
// Recompute window positions.
|
// Recompute window positions.
|
||||||
win_comp_pos();
|
win_comp_pos();
|
||||||
|
|
||||||
// clear the lines added to cmdline
|
if (!need_wait_return) {
|
||||||
if (full_screen) {
|
// clear the lines added to cmdline
|
||||||
grid_clear(&default_grid, cmdline_row, Rows, 0, Columns, 0);
|
if (full_screen) {
|
||||||
|
grid_clear(&default_grid, cmdline_row, Rows, 0, Columns, 0);
|
||||||
|
}
|
||||||
|
msg_row = cmdline_row;
|
||||||
}
|
}
|
||||||
msg_row = cmdline_row;
|
|
||||||
redraw_cmdline = true;
|
redraw_cmdline = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -139,10 +139,17 @@ describe('cmdline', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it("setting 'cmdheight' works after outputting two messages vim-patch:9.0.0665", function()
|
-- oldtest: Test_changing_cmdheight()
|
||||||
|
it("changing 'cmdheight'", function()
|
||||||
local screen = Screen.new(60, 8)
|
local screen = Screen.new(60, 8)
|
||||||
exec([[
|
exec([[
|
||||||
set cmdheight=1 laststatus=2
|
set cmdheight=1 laststatus=2
|
||||||
|
func EchoOne()
|
||||||
|
set laststatus=2 cmdheight=1
|
||||||
|
echo 'foo'
|
||||||
|
echo 'bar'
|
||||||
|
set cmdheight=2
|
||||||
|
endfunc
|
||||||
func EchoTwo()
|
func EchoTwo()
|
||||||
set laststatus=2
|
set laststatus=2
|
||||||
set cmdheight=5
|
set cmdheight=5
|
||||||
@ -151,6 +158,8 @@ describe('cmdline', function()
|
|||||||
set cmdheight=1
|
set cmdheight=1
|
||||||
endfunc
|
endfunc
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
-- setting 'cmdheight' works after outputting two messages
|
||||||
feed(':call EchoTwo()')
|
feed(':call EchoTwo()')
|
||||||
screen:expect([[
|
screen:expect([[
|
||||||
|
|
|
|
||||||
@ -165,6 +174,17 @@ describe('cmdline', function()
|
|||||||
{3:[No Name] }|
|
{3:[No Name] }|
|
||||||
|
|
|
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
-- increasing 'cmdheight' doesn't clear the messages that need hit-enter
|
||||||
|
feed(':call EchoOne()<CR>')
|
||||||
|
screen:expect([[
|
||||||
|
|
|
||||||
|
{1:~ }|*3
|
||||||
|
{3: }|
|
||||||
|
foo |
|
||||||
|
bar |
|
||||||
|
{6:Press ENTER or type command to continue}^ |
|
||||||
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- oldtest: Test_cmdheight_tabline()
|
-- oldtest: Test_cmdheight_tabline()
|
||||||
|
@ -271,6 +271,12 @@ func Test_changing_cmdheight()
|
|||||||
|
|
||||||
let lines =<< trim END
|
let lines =<< trim END
|
||||||
set cmdheight=1 laststatus=2
|
set cmdheight=1 laststatus=2
|
||||||
|
func EchoOne()
|
||||||
|
set laststatus=2 cmdheight=1
|
||||||
|
echo 'foo'
|
||||||
|
echo 'bar'
|
||||||
|
set cmdheight=2
|
||||||
|
endfunc
|
||||||
func EchoTwo()
|
func EchoTwo()
|
||||||
set laststatus=2
|
set laststatus=2
|
||||||
set cmdheight=5
|
set cmdheight=5
|
||||||
@ -306,6 +312,10 @@ func Test_changing_cmdheight()
|
|||||||
call term_sendkeys(buf, ":call EchoTwo()\<CR>")
|
call term_sendkeys(buf, ":call EchoTwo()\<CR>")
|
||||||
call VerifyScreenDump(buf, 'Test_changing_cmdheight_6', {})
|
call VerifyScreenDump(buf, 'Test_changing_cmdheight_6', {})
|
||||||
|
|
||||||
|
" increasing 'cmdheight' doesn't clear the messages that need hit-enter
|
||||||
|
call term_sendkeys(buf, ":call EchoOne()\<CR>")
|
||||||
|
call VerifyScreenDump(buf, 'Test_changing_cmdheight_7', {})
|
||||||
|
|
||||||
" clean up
|
" clean up
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
Loading…
Reference in New Issue
Block a user