changeset 30029:d03ee646c9ec v9.0.0352

patch 9.0.0352: using :echowindow in a timer clears part of message Commit: https://github.com/vim/vim/commit/3b474dcd30ea188124f5ad766f5096f9a0cef895 Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 1 17:01:32 2022 +0100 patch 9.0.0352: using :echowindow in a timer clears part of message Problem: using :echowindow in a timer clears part of message Solution: Do not use msg_clr_eos().
author Bram Moolenaar <Bram@vim.org>
date Thu, 01 Sep 2022 18:15:05 +0200
parents 2ee12f894bb0
children e984c2fa1f49
files src/message.c src/testdir/dumps/Test_echowindow_2.dump src/testdir/dumps/Test_echowindow_4.dump src/version.c
diffstat 4 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/message.c
+++ b/src/message.c
@@ -1443,7 +1443,7 @@ msg_start(void)
     }
 
 #ifdef FEAT_EVAL
-    if (need_clr_eos || in_echowindow)
+    if (need_clr_eos)
     {
 	// Halfway an ":echo" command and getting an (error) message: clear
 	// any text from the command.
@@ -3646,6 +3646,10 @@ msg_clr_eos(void)
     void
 msg_clr_eos_force(void)
 {
+#ifdef HAS_MESSAGE_WINDOW
+    if (in_echowindow)
+	return;  // messages go into a popup
+#endif
     if (msg_use_printf())
     {
 	if (full_screen)	// only when termcap codes are valid
--- a/src/testdir/dumps/Test_echowindow_2.dump
+++ b/src/testdir/dumps/Test_echowindow_2.dump
@@ -5,4 +5,4 @@
 |═+0#e000002&@74
 |f|i|r|s|t| |l|i|n|e| @64
 |s|e|c|o|n|d| |l|i|n|e| @63
-| +0#0000000&@56|1|,|1| @10|A|l@1| 
+|:+0#0000000&|c|a|l@1| |S|h|o|w|M|e|s@1|a|g|e|(|'|s|e|c|o|n|d| |l|i|n|e|'|)| @24|1|,|1| @10|A|l@1| 
--- a/src/testdir/dumps/Test_echowindow_4.dump
+++ b/src/testdir/dumps/Test_echowindow_4.dump
@@ -5,4 +5,4 @@
 |l|i|n|e| |1|7| @67
 |l|i|n|e| |1|8| @67
 |l|i|n|e| |1|9| @67
-| +0#0000000&@56|1|,|1| @10|A|l@1| 
+|:+0#0000000&|c|a|l@1| |M|a|n|y|M|e|s@1|a|g|e|s|(|)| @36|1|,|1| @10|A|l@1| 
--- a/src/version.c
+++ b/src/version.c
@@ -708,6 +708,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    352,
+/**/
     351,
 /**/
     350,