diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-21 18:50:18 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-21 18:50:18 +0200 |
commit | 2f0f871159b2cba862fcd41edab65b17da75c422 (patch) | |
tree | d8dbf0ef961c3f56a0b3ed74b16cee56e99821d2 | |
parent | 7feb35e7782907b44659a2748ff5d7489deeed74 (diff) |
patch 8.1.0310: file info msg not always suppressed with 'F' in 'shortmess'v8.1.0310
Problem: File info message not always suppressed with 'F' in 'shortmess'.
(Asheq Imran)
Solution: Save and restore msg_silent. (Christian Brabandt, closes #3221)
-rw-r--r-- | src/buffer.c | 7 | ||||
-rw-r--r-- | src/memline.c | 5 | ||||
-rw-r--r-- | src/testdir/test_options.vim | 21 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 34 insertions, 1 deletions
diff --git a/src/buffer.c b/src/buffer.c index 6bcd28b36c..2ca131d23e 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1035,7 +1035,14 @@ handle_swap_exists(bufref_T *old_curbuf) 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 fb262acef5..fbdd8a372c 100644 --- a/src/memline.c +++ b/src/memline.c @@ -828,10 +828,13 @@ ml_open_file(buf_T *buf) */ 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 d8f033e03f..2d4a97aa18 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -414,3 +414,24 @@ func Test_shortmess_F() 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 8107b44c6e..cc62660160 100644 --- a/src/version.c +++ b/src/version.c @@ -795,6 +795,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 310, +/**/ 309, /**/ 308, |