patch 8.1.0310: file info msg not always suppressed with 'F' in 'shortmess'
Problem: File info message not always suppressed with 'F' in 'shortmess'.
(Asheq Imran)
Solution: Save and restore msg_silent. (Christian Brabandt, closes #3221)
diff --git a/src/buffer.c b/src/buffer.c
index 6bcd28b..2ca131d 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -1035,7 +1035,14 @@
buf = old_curbuf->br_buf;
if (buf != NULL)
{
+ int old_msg_silent = msg_silent;
+
+ if (shortmess(SHM_FILEINFO))
+ msg_silent = 1; // prevent fileinfo message
enter_buffer(buf);
+ // restore msg_silent, so that the command line will be shown
+ msg_silent = old_msg_silent;
+
# ifdef FEAT_SYN_HL
if (old_tw != curbuf->b_p_tw)
check_colorcolumn(curwin);
diff --git a/src/memline.c b/src/memline.c
index fb262ac..fbdd8a3 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -828,10 +828,13 @@
*/
void
check_need_swap(
- int newfile) /* reading file into new buffer */
+ int newfile) // reading file into new buffer
{
+ int old_msg_silent = msg_silent; // might be reset by an E325 message
+
if (curbuf->b_may_swap && (!curbuf->b_p_ro || !newfile))
ml_open_file(curbuf);
+ msg_silent = old_msg_silent;
}
/*
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index d8f033e..2d4a97a 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -414,3 +414,24 @@
set shortmess&
bwipe
endfunc
+
+func Test_shortmess_F2()
+ e file1
+ e file2
+ call assert_match('file1', execute('bn', ''))
+ call assert_match('file2', execute('bn', ''))
+ set shortmess+=F
+ call assert_true(empty(execute('bn', '')))
+ call assert_true(empty(execute('bn', '')))
+ set hidden
+ call assert_true(empty(execute('bn', '')))
+ call assert_true(empty(execute('bn', '')))
+ set nohidden
+ call assert_true(empty(execute('bn', '')))
+ call assert_true(empty(execute('bn', '')))
+ set shortmess&
+ call assert_match('file1', execute('bn', ''))
+ call assert_match('file2', execute('bn', ''))
+ bwipe
+ bwipe
+endfunc
diff --git a/src/version.c b/src/version.c
index 8107b44..cc62660 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 310,
+/**/
309,
/**/
308,