summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-03-07 21:48:33 +0100
committerChristian Brabandt <cb@256bit.org>2024-03-07 21:48:33 +0100
commit8a01744c563f615ae7f6b3ab7f5208214a45a8e2 (patch)
tree6ff1c90eef996072f5e7e9ba4439acc536d708e2
parent0df8f93bdaea77a1afb9f4eca94fe67ec73e6df2 (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>
-rw-r--r--src/fileio.c10
-rw-r--r--src/testdir/test_options.vim34
-rw-r--r--src/version.c2
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,