aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/buffer.c
diff options
context:
space:
mode:
authorGregory Anders <8965202+gpanders@users.noreply.github.com>2022-04-25 08:44:18 -0600
committerGitHub <noreply@github.com>2022-04-25 08:44:18 -0600
commit2dddc86a42a77bd099a031165e57add84b9b0e82 (patch)
tree3c94c7606c30e172d6dd28f375d9e4c2c422bc1c /src/nvim/buffer.c
parent440b65c338a7ab18e4ed2256d411cf0d3ce698c4 (diff)
downloadrneovim-2dddc86a42a77bd099a031165e57add84b9b0e82.tar.gz
rneovim-2dddc86a42a77bd099a031165e57add84b9b0e82.tar.bz2
rneovim-2dddc86a42a77bd099a031165e57add84b9b0e82.zip
fix: show autocmd output when F is in shortmess (#18251)
The default value of including F in 'shortmess' has the unfortunate side effect of hiding output from autocommands. This is a common source of confusion and often leads people to think their autocommands are not working when they are. There is a small snippet in the docs for 'shortmess' indicating that the F flag suppresses autocmd output, but it's not easy to find if you don't already know to look for it. This commit removes that behavior of the F flag to make it only suppress file info when opening a new file.
Diffstat (limited to 'src/nvim/buffer.c')
-rw-r--r--src/nvim/buffer.c22
1 files changed, 6 insertions, 16 deletions
diff --git a/src/nvim/buffer.c b/src/nvim/buffer.c
index 5d2d1cebde..8840813b84 100644
--- a/src/nvim/buffer.c
+++ b/src/nvim/buffer.c
@@ -109,6 +109,7 @@ static int read_buffer(int read_stdin, exarg_T *eap, int flags)
{
int retval = OK;
linenr_T line_count;
+ bool silent = shortmess(SHM_FILEINFO);
// Read from the buffer which the text is already filled in and append at
// the end. This makes it possible to retry when 'fileformat' or
@@ -117,7 +118,7 @@ static int read_buffer(int read_stdin, exarg_T *eap, int flags)
retval = readfile(read_stdin ? NULL : curbuf->b_ffname,
read_stdin ? NULL : curbuf->b_fname,
line_count, (linenr_T)0, (linenr_T)MAXLNUM, eap,
- flags | READ_BUFFER);
+ flags | READ_BUFFER, silent);
if (retval == OK) {
// Delete the binary lines.
while (--line_count >= 0) {
@@ -162,6 +163,7 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
bufref_T old_curbuf;
long old_tw = curbuf->b_p_tw;
int read_fifo = false;
+ bool silent = shortmess(SHM_FILEINFO);
// The 'readonly' flag is only set when BF_NEVERLOADED is being reset.
// When re-entering the same buffer, it should not change, because the
@@ -212,7 +214,6 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
curwin->w_valid = 0;
if (curbuf->b_ffname != NULL) {
- int old_msg_silent = msg_silent;
#ifdef UNIX
int save_bin = curbuf->b_p_bin;
int perm;
@@ -231,13 +232,10 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
curbuf->b_p_bin = true;
}
#endif
- if (shortmess(SHM_FILEINFO)) {
- msg_silent = 1;
- }
retval = readfile(curbuf->b_ffname, curbuf->b_fname,
(linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM, eap,
- flags | READ_NEW | (read_fifo ? READ_FIFO : 0));
+ flags | READ_NEW | (read_fifo ? READ_FIFO : 0), silent);
#ifdef UNIX
if (read_fifo) {
curbuf->b_p_bin = save_bin;
@@ -246,7 +244,6 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
}
}
#endif
- msg_silent = old_msg_silent;
// Help buffer is filtered.
if (bt_help(curbuf)) {
@@ -262,7 +259,7 @@ int open_buffer(int read_stdin, exarg_T *eap, int flags)
curbuf->b_p_bin = true;
retval = readfile(NULL, NULL, (linenr_T)0,
(linenr_T)0, (linenr_T)MAXLNUM, NULL,
- flags | (READ_NEW + READ_STDIN));
+ flags | (READ_NEW + READ_STDIN), silent);
curbuf->b_p_bin = save_bin;
if (retval == OK) {
retval = read_buffer(true, eap, flags);
@@ -903,14 +900,7 @@ void 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;
if (old_tw != curbuf->b_p_tw) {
check_colorcolumn(curwin);
@@ -5611,7 +5601,7 @@ bool buf_contents_changed(buf_T *buf)
if (ml_open(curbuf) == OK
&& readfile(buf->b_ffname, buf->b_fname,
(linenr_T)0, (linenr_T)0, (linenr_T)MAXLNUM,
- &ea, READ_NEW | READ_DUMMY) == OK) {
+ &ea, READ_NEW | READ_DUMMY, false) == OK) {
// compare the two files line by line
if (buf->b_ml.ml_line_count == curbuf->b_ml.ml_line_count) {
differ = false;