# HG changeset patch # User Bram Moolenaar # Date 1660223703 -7200 # Node ID c43738957bee87be88e0a4a76e488f67e28b346c # Parent fb297eb5987bf5f7bf3d9dc75bb4ad296a565ec1 patch 9.0.0191: messages test fails; window size incorrect Commit: https://github.com/vim/vim/commit/d4cf9fc53e0b1d36e84d28ecd5595a6f102f325e Author: Bram Moolenaar Date: Thu Aug 11 14:13:37 2022 +0100 patch 9.0.0191: messages test fails; window size incorrect Problem: Messages test fails; window size incorrect when 'cmdheight' is made smaller. Solution: Properly cleanup after test with cmdheight zero. Resize windows correctly when 'cmdheight' gets smaller. diff --git a/src/testdir/dumps/Test_changing_cmdheight_5.dump b/src/testdir/dumps/Test_changing_cmdheight_5.dump new file mode 100644 --- /dev/null +++ b/src/testdir/dumps/Test_changing_cmdheight_5.dump @@ -0,0 +1,8 @@ +> +0&#ffffff0@74 +|~+0#4040ff13&| @73 +|~| @73 +|~| @73 +|~| @73 +|~| @73 +|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1 +| +0&&@74 diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim --- a/src/testdir/test_cmdline.vim +++ b/src/testdir/test_cmdline.vim @@ -239,6 +239,11 @@ func Test_changing_cmdheight() call term_sendkeys(buf, ":set cmdheight-=2\") call VerifyScreenDump(buf, 'Test_changing_cmdheight_4', {}) + " reducing window size and then setting cmdheight + call term_sendkeys(buf, ":resize -1\") + call term_sendkeys(buf, ":set cmdheight=1\") + call VerifyScreenDump(buf, 'Test_changing_cmdheight_5', {}) + " clean up call StopVimInTerminal(buf) call delete('XTest_cmdheight') diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim --- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -388,6 +388,7 @@ func Test_fileinfo_after_echo() endfunc func Test_cmdheight_zero() + enew set cmdheight=0 set showcmd redraw! @@ -437,10 +438,13 @@ func Test_cmdheight_zero() 7 call feedkeys(":\"\=line('w0')\\", "xt") call assert_equal('"1', @:) + bwipe! - + bwipe! set cmdheight& set showcmd& + tabnew + tabonly endfunc " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -736,6 +736,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 191, +/**/ 190, /**/ 189, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -6555,6 +6555,12 @@ command_height(void) if (p_ch > old_p_ch && cmdline_row <= Rows - p_ch) return; + // If cmdline_row is smaller than what it is supposed to be for 'cmdheight' + // then set old_p_ch to what it would be, so that the windows get resized + // properly for the new value. + if (cmdline_row < Rows - p_ch) + old_p_ch = Rows - cmdline_row; + // Find bottom frame with width of screen. frp = lastwin->w_frame; while (frp->fr_width != Columns && frp->fr_parent != NULL)