]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.0.1635: error message is cleared when removing mode message v9.0.1635
authorBram Moolenaar <Bram@vim.org>
Thu, 15 Jun 2023 17:44:50 +0000 (18:44 +0100)
committerBram Moolenaar <Bram@vim.org>
Thu, 15 Jun 2023 17:44:50 +0000 (18:44 +0100)
Problem:    Error message is cleared when removing mode message.
Solution:   Also reset flags when the message is further down.

src/message.c
src/testdir/dumps/Test_message_not_cleared_after_mode_1.dump
src/testdir/dumps/Test_message_not_cleared_after_mode_2.dump
src/testdir/dumps/Test_message_not_cleared_after_mode_3.dump [new file with mode: 0644]
src/testdir/test_messages.vim
src/version.c

index 44c4f8557450756ebeb7f52445631a7771dd476a..d047d4fcc884f954d67c228dd8a29cf96e6a0432 100644 (file)
@@ -1643,7 +1643,7 @@ msg_outtrans_len_attr(char_u *msgstr, int len, int attr)
 
     // When drawing over the command line no need to clear it later or remove
     // the mode message.
-    if (msg_row == cmdline_row && msg_col == 0)
+    if (msg_row >= cmdline_row && msg_col == 0)
     {
        clear_cmdline = FALSE;
        mode_displayed = FALSE;
index 9e8d20ac4de723eee1811b075a090dc3a9e79928..7fc619e8ed14457b1e69fb6d80a3a398ecf1600a 100644 (file)
@@ -1,5 +1,5 @@
 >o+0&#ffffff0|n|e| @71
-|t|w|o| @71
+|N|o|S|u|c|h|F|i|l|e| @64
 |t|h|r|e@1| @69
 |~+0#4040ff13&| @73
 |~| @73
index 49dabef4f6f1cc3f93e189a6f16c2238e6ac6c11..4237533ef8e1041c5fe7eec7e8326bd7f93066c7 100644 (file)
@@ -1,5 +1,5 @@
 >o+0&#ffffff0|n|e| @71
-|t|w|o| @71
+|N|o|S|u|c|h|F|i|l|e| @64
 |t|h|r|e@1| @69
 |~+0#4040ff13&| @73
 |~| @73
diff --git a/src/testdir/dumps/Test_message_not_cleared_after_mode_3.dump b/src/testdir/dumps/Test_message_not_cleared_after_mode_3.dump
new file mode 100644 (file)
index 0000000..b6d82c7
--- /dev/null
@@ -0,0 +1,10 @@
+|o+0&#ffffff0|n|e| @71
+|N|o|S|u|c|h|F|i|l>e| @64
+|t|h|r|e@1| @69
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+| +0#0000000&@74
+|E+0#ffffff16#e000002|4@1|7|:| |C|a|n|'|t| |f|i|n|d| |f|i|l|e| |"|N|o|S|u|c|h|F|i|l|e|"| |i|n| |p|a|t|h| +0#0000000#ffffff0@14|2|,|1|0| @9|A|l@1| 
index 0647afd287c07703239076aaa63f57a73e9ff1b8..6db17460b6c6fea77d43a4292b9178185d16b0ea 100644 (file)
@@ -347,7 +347,8 @@ func Test_message_not_cleared_after_mode()
       endfunction
       set showmode
       set cmdheight=1
-      call setline(1, ['one', 'two', 'three'])
+      call test_settime(1)
+      call setline(1, ['one', 'NoSuchFile', 'three'])
   END
   call writefile(lines, 'XmessageMode', 'D')
   let buf = RunVimInTerminal('-S XmessageMode', {'rows': 10})
@@ -361,6 +362,12 @@ func Test_message_not_cleared_after_mode()
   call TermWait(buf)
   call VerifyScreenDump(buf, 'Test_message_not_cleared_after_mode_2', {})
 
+  " removing the mode message used to also clear the error message
+  call term_sendkeys(buf, ":set cmdheight=2\<CR>")
+  call term_sendkeys(buf, '2GvEgf')
+  call TermWait(buf)
+  call VerifyScreenDump(buf, 'Test_message_not_cleared_after_mode_3', {})
+
   call StopVimInTerminal(buf)
 endfunc
 
index 8f382e16f496fb3aa36e25c5cc3030c6e04a4676..2665c51090652cca396eb03cc486b70d79be03e0 100644 (file)
@@ -695,6 +695,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1635,
 /**/
     1634,
 /**/