diff src/buffer.c @ 29867:6eaef7375f17 v9.0.0272

patch 9.0.0272: BufReadCmd not triggered when loading a "nofile" buffer Commit: https://github.com/vim/vim/commit/b1d2c8116cb5577961ea109651fb888b5e58265f Author: Bram Moolenaar <Bram@vim.org> Date: Fri Aug 26 11:55:01 2022 +0100 patch 9.0.0272: BufReadCmd not triggered when loading a "nofile" buffer Problem: BufReadCmd not triggered when loading a "nofile" buffer. (Maxim Kim) Solution: Call readfile() but bail out before reading a file. (closes #10983)
author Bram Moolenaar <Bram@vim.org>
date Fri, 26 Aug 2022 13:00:04 +0200
parents 6bddfc49c35b
children a4eab0d846dc
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -167,8 +167,9 @@ buffer_ensure_loaded(buf_T *buf)
 open_buffer(
     int		read_stdin,	    // read file from stdin
     exarg_T	*eap,		    // for forced 'ff' and 'fenc' or NULL
-    int		flags)		    // extra flags for readfile()
+    int		flags_arg)	    // extra flags for readfile()
 {
+    int		flags = flags_arg;
     int		retval = OK;
     bufref_T	old_curbuf;
 #ifdef FEAT_SYN_HL
@@ -220,10 +221,13 @@ open_buffer(
     // mark cursor position as being invalid
     curwin->w_valid = 0;
 
+    // A buffer without an actual file should not use the buffer name to read a
+    // file.
+    if (bt_quickfix(curbuf) || bt_nofilename(curbuf))
+	flags |= READ_NOFILE;
+
     // Read the file if there is one.
     if (curbuf->b_ffname != NULL
-	    && !bt_quickfix(curbuf)
-	    && !bt_nofilename(curbuf)
 #ifdef FEAT_NETBEANS_INTG
 	    && netbeansReadFile
 #endif