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

Commit: 
https://github.com/vim/vim/commit/8a01744c563f615ae7f6b3ab7f5208214a45a8e2
Author: zeertzjq <zeert...@outlook.com>
Date:   Thu Mar 7 21:48:33 2024 +0100

    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 <zeert...@outlook.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/fileio.c b/src/fileio.c
index 344c819e7..ad09c5a22 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 fa65f5c19..fbfbaae14 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 86537c437..8a1bb161c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    158,
 /**/
     157,
 /**/

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/E1riKqR-005h6L-FH%40256bit.org.

Raspunde prin e-mail lui