patch 9.1.0158: 'shortmess' "F" flag doesn't work properly with 'autoread'

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>
This commit is contained in:
zeertzjq
2024-03-07 21:48:33 +01:00
committed by Christian Brabandt
parent 0df8f93bda
commit 8a01744c56
3 changed files with 37 additions and 9 deletions

View File

@ -4294,7 +4294,7 @@ buf_check_timestamp(
#endif #endif
} }
if (mesg != NULL && !shortmess(SHM_FILEINFO)) if (mesg != NULL)
{ {
path = home_replace_save(buf, buf->b_fname); path = home_replace_save(buf, buf->b_fname);
if (path != NULL) if (path != NULL)
@ -4489,8 +4489,14 @@ buf_reload(buf_T *buf, int orig_mode, int reload_options)
if (saved == OK) if (saved == OK)
{ {
int old_msg_silent = msg_silent;
curbuf->b_flags |= BF_CHECK_RO; // check for RO again curbuf->b_flags |= BF_CHECK_RO; // check for RO again
keep_filetype = TRUE; // don't detect 'filetype' 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, if (readfile(buf->b_ffname, buf->b_fname, (linenr_T)0,
(linenr_T)0, (linenr_T)0,
(linenr_T)MAXLNUM, &ea, flags) != OK) (linenr_T)MAXLNUM, &ea, flags) != OK)
@ -4521,6 +4527,8 @@ buf_reload(buf_T *buf, int orig_mode, int reload_options)
u_unchanged(curbuf); u_unchanged(curbuf);
} }
} }
msg_silent = old_msg_silent;
} }
vim_free(ea.cmd); vim_free(ea.cmd);

View File

@ -1294,23 +1294,41 @@ func Test_shortmess_F2()
endfunc endfunc
func Test_shortmess_F3() func Test_shortmess_F3()
defer delete('X_dummy') call writefile(['foo'], 'X_dummy', 'D')
set hidden set hidden
set autoread set autoread
e X_dummy e X_dummy
e file e Xotherfile
call assert_equal(['foo'], getbufline('X_dummy', 1, '$'))
set shortmess+=F set shortmess+=F
call writefile(["foo"], 'X_dummy') echo ''
call assert_true(empty(execute('bn', '')))
call assert_true(empty(execute('bn', ''))) 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 shortmess&
set autoread& set autoread&
set hidden& set hidden&
bwipe bwipe X_dummy
bwipe bwipe Xotherfile
endfunc endfunc
func Test_local_scrolloff() func Test_local_scrolloff()

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
158,
/**/ /**/
157, 157,
/**/ /**/