changeset 36527:cd34bc4212b5 draft v9.1.0855

patch 9.1.0855: setting 'cmdheight' may cause hit-enter-prompt Commit: https://github.com/vim/vim/commit/2e48567007f2becd484a3c3dd0706bf3a0beeae7 Author: nwounkn <nwounkn@gmail.com> Date: Mon Nov 11 21:48:30 2024 +0100 patch 9.1.0855: setting 'cmdheight' may cause hit-enter-prompt 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: #13432 Signed-off-by: nwounkn <nwounkn@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Mon, 11 Nov 2024 22:00:04 +0100
parents 9bd0f3fa4a18
children 3dfc4ccab134
files src/testdir/dumps/Test_changing_cmdheight_7.dump src/testdir/test_cmdline.vim src/version.c src/window.c
diffstat 4 files changed, 28 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/src/testdir/dumps/Test_changing_cmdheight_7.dump
@@ -0,0 +1,8 @@
+|~+0#4040ff13#ffffff0| @73
+|~| @73
+|~| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+|f+0&&|o@1| @71
+|b|a|r| @71
+|P+0#00e0003&|r|e|s@1| |E|N|T|E|R| |o|r| |t|y|p|e| |c|o|m@1|a|n|d| |t|o| |c|o|n|t|i|n|u|e> +0#0000000&@35
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -270,6 +270,12 @@ func Test_changing_cmdheight()
 
   let lines =<< trim END
       set cmdheight=1 laststatus=2
+      func EchoOne()
+        set laststatus=2 cmdheight=1
+        echo 'foo'
+        echo 'bar'
+        set cmdheight=2
+      endfunc
       func EchoTwo()
         set laststatus=2
         set cmdheight=5
@@ -305,6 +311,10 @@ func Test_changing_cmdheight()
   call term_sendkeys(buf, ":call EchoTwo()\<CR>")
   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
   call StopVimInTerminal(buf)
 endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    855,
+/**/
     854,
 /**/
     853,
--- a/src/window.c
+++ b/src/window.c
@@ -7343,11 +7343,14 @@ command_height(void)
 	    // Recompute window positions.
 	    (void)win_comp_pos();
 
-	    // clear the lines added to cmdline
-	    if (full_screen)
-		screen_fill(cmdline_row, (int)Rows, 0,
-						   (int)Columns, ' ', ' ', 0);
-	    msg_row = cmdline_row;
+	    if (!need_wait_return)
+	    {
+		// clear the lines added to cmdline
+		if (full_screen)
+		    screen_fill(cmdline_row, (int)Rows, 0,
+						       (int)Columns, ' ', ' ', 0);
+		msg_row = cmdline_row;
+	    }
 	    redraw_cmdline = TRUE;
 	    return;
 	}