diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-03-07 21:48:33 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-03-07 21:48:33 +0100 |
commit | 8a01744c563f615ae7f6b3ab7f5208214a45a8e2 (patch) | |
tree | 6ff1c90eef996072f5e7e9ba4439acc536d708e2 /src | |
parent | 0df8f93bdaea77a1afb9f4eca94fe67ec73e6df2 (diff) |
patch 9.1.0158: 'shortmess' "F" flag doesn't work properly with 'autoread'v9.1.0158
Problem: 'shortmess' "F" flag doesn't work properly with 'autoread'
(after 9.1.0154)
Solution: Hide the file info message instead of the warning dialog
(zeertzjq)
closes: #14159
closes: #14158
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/fileio.c | 10 | ||||
-rw-r--r-- | src/testdir/test_options.vim | 34 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 37 insertions, 9 deletions
diff --git a/src/fileio.c b/src/fileio.c index 344c819e7e..ad09c5a225 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4294,7 +4294,7 @@ buf_check_timestamp( #endif } - if (mesg != NULL && !shortmess(SHM_FILEINFO)) + if (mesg != NULL) { path = home_replace_save(buf, buf->b_fname); if (path != NULL) @@ -4489,8 +4489,14 @@ buf_reload(buf_T *buf, int orig_mode, int reload_options) if (saved == OK) { + int old_msg_silent = msg_silent; + curbuf->b_flags |= BF_CHECK_RO; // check for RO again keep_filetype = TRUE; // don't detect 'filetype' + + if (shortmess(SHM_FILEINFO)) + msg_silent = 1; + if (readfile(buf->b_ffname, buf->b_fname, (linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM, &ea, flags) != OK) @@ -4521,6 +4527,8 @@ buf_reload(buf_T *buf, int orig_mode, int reload_options) u_unchanged(curbuf); } } + + msg_silent = old_msg_silent; } vim_free(ea.cmd); diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim index fa65f5c192..fbfbaae14c 100644 --- a/src/testdir/test_options.vim +++ b/src/testdir/test_options.vim @@ -1294,23 +1294,41 @@ func Test_shortmess_F2() endfunc func Test_shortmess_F3() - defer delete('X_dummy') + call writefile(['foo'], 'X_dummy', 'D') set hidden set autoread e X_dummy - e file - + e Xotherfile + call assert_equal(['foo'], getbufline('X_dummy', 1, '$')) set shortmess+=F - call writefile(["foo"], 'X_dummy') - call assert_true(empty(execute('bn', ''))) - call assert_true(empty(execute('bn', ''))) + echo '' + + if has('nanotime') + sleep 10m + else + sleep 2 + endif + call writefile(['bar'], 'X_dummy') + bprev + call assert_equal('', Screenline(&lines)) + call assert_equal(['bar'], getbufline('X_dummy', 1, '$')) + + if has('nanotime') + sleep 10m + else + sleep 2 + endif + call writefile(['baz'], 'X_dummy') + checktime + call assert_equal('', Screenline(&lines)) + call assert_equal(['baz'], getbufline('X_dummy', 1, '$')) set shortmess& set autoread& set hidden& - bwipe - bwipe + bwipe X_dummy + bwipe Xotherfile endfunc func Test_local_scrolloff() diff --git a/src/version.c b/src/version.c index 86537c4377..8a1bb161c0 100644 --- 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 */ /**/ + 158, +/**/ 157, /**/ 156, |