changeset 17095:10e0d7d96cb0 v8.1.1547

patch 8.1.1547: functionality of bt_nofile() is confusing commit https://github.com/vim/vim/commit/26910de8b0da6abab87bd5a397330f9cbe483309 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 15 19:37:15 2019 +0200 patch 8.1.1547: functionality of bt_nofile() is confusing Problem: Functionality of bt_nofile() is confusing. Solution: Split into bt_nofile() and bt_nofilename().
author Bram Moolenaar <Bram@vim.org>
date Sat, 15 Jun 2019 19:45:06 +0200
parents 8ca56a5c3141
children a8e6a8fbe880
files src/buffer.c src/evalfunc.c src/ex_cmds.c src/ex_docmd.c src/fileio.c src/popupmnu.c src/proto/buffer.pro src/quickfix.c src/version.c
diffstat 9 files changed, 26 insertions(+), 14 deletions(-) [+]
line wrap: on
line diff
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -5698,7 +5698,7 @@ bt_popup(buf_T *buf)
  * buffer.  This means the buffer name is not a file name.
  */
     int
-bt_nofile(buf_T *buf)
+bt_nofilename(buf_T *buf)
 {
     return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
 	    || buf->b_p_bt[0] == 'a'
@@ -5707,6 +5707,15 @@ bt_nofile(buf_T *buf)
 }
 
 /*
+ * Return TRUE if "buf" has 'buftype' set to "nofile".
+ */
+    int
+bt_nofile(buf_T *buf)
+{
+    return buf != NULL && buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f';
+}
+
+/*
  * Return TRUE if "buf" is a "nowrite", "nofile", "terminal" or "prompt"
  * buffer.
  */
@@ -5772,7 +5781,7 @@ buf_spname(buf_T *buf)
 
     /* There is no _file_ when 'buftype' is "nofile", b_sfname
      * contains the name as specified by the user. */
-    if (bt_nofile(buf))
+    if (bt_nofilename(buf))
     {
 #ifdef FEAT_TERMINAL
 	if (buf->b_term != NULL)
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -1943,7 +1943,7 @@ find_buffer(typval_T *avar)
 		if (buf->b_fname != NULL
 			&& (path_with_url(buf->b_fname)
 #ifdef FEAT_QUICKFIX
-			    || bt_nofile(buf)
+			    || bt_nofilename(buf)
 #endif
 			   )
 			&& STRCMP(buf->b_fname, avar->vval.v_string) == 0)
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -3399,7 +3399,7 @@ check_overwrite(
 		|| (buf->b_flags & BF_READERR))
 	    && !p_wa
 #ifdef FEAT_QUICKFIX
-	    && !bt_nofile(buf)
+	    && !bt_nofilename(buf)
 #endif
 	    && vim_fexists(ffname))
     {
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -9909,7 +9909,7 @@ makeopens(
 		    && wp->w_buffer->b_ffname != NULL
 		    && !bt_help(wp->w_buffer)
 #ifdef FEAT_QUICKFIX
-		    && !bt_nofile(wp->w_buffer)
+		    && !bt_nofilename(wp->w_buffer)
 #endif
 		    )
 	    {
@@ -10236,7 +10236,7 @@ ses_do_win(win_T *wp)
     if (wp->w_buffer->b_fname == NULL
 #ifdef FEAT_QUICKFIX
 	    /* When 'buftype' is "nofile" can't restore the window contents. */
-	    || bt_nofile(wp->w_buffer)
+	    || bt_nofilename(wp->w_buffer)
 #endif
        )
 	return (ssop_flags & SSOP_BLANK);
@@ -10323,7 +10323,7 @@ put_view(
 	 */
 	if (wp->w_buffer->b_ffname != NULL
 # ifdef FEAT_QUICKFIX
-		&& !bt_nofile(wp->w_buffer)
+		&& !bt_nofilename(wp->w_buffer)
 # endif
 		)
 	{
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -3160,7 +3160,7 @@ buf_write(
 	    && whole
 	    && buf == curbuf
 #ifdef FEAT_QUICKFIX
-	    && !bt_nofile(buf)
+	    && !bt_nofilename(buf)
 #endif
 	    && !filtering
 	    && (!append || vim_strchr(p_cpo, CPO_FNAMEAPP) != NULL)
@@ -3237,7 +3237,7 @@ buf_write(
 					 sfname, sfname, FALSE, curbuf, eap)))
 	    {
 #ifdef FEAT_QUICKFIX
-		if (overwriting && bt_nofile(curbuf))
+		if (overwriting && bt_nofilename(curbuf))
 		    nofile_err = TRUE;
 		else
 #endif
@@ -3270,7 +3270,7 @@ buf_write(
 	    else
 	    {
 #ifdef FEAT_QUICKFIX
-		if (overwriting && bt_nofile(curbuf))
+		if (overwriting && bt_nofilename(curbuf))
 		    nofile_err = TRUE;
 		else
 #endif
@@ -3284,7 +3284,7 @@ buf_write(
 					 sfname, sfname, FALSE, curbuf, eap)))
 	    {
 #ifdef FEAT_QUICKFIX
-		if (overwriting && bt_nofile(curbuf))
+		if (overwriting && bt_nofilename(curbuf))
 		    nofile_err = TRUE;
 		else
 #endif
@@ -6083,7 +6083,7 @@ shorten_buf_fname(buf_T *buf, char_u *di
 
     if (buf->b_fname != NULL
 #ifdef FEAT_QUICKFIX
-	    && !bt_nofile(buf)
+	    && !bt_nofilename(buf)
 #endif
 	    && !path_with_url(buf->b_fname)
 	    && (force
--- a/src/popupmnu.c
+++ b/src/popupmnu.c
@@ -727,7 +727,7 @@ pum_set_selected(int n, int repeat)
 		if (!resized
 			&& curbuf->b_nwindows == 1
 			&& curbuf->b_fname == NULL
-			&& curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f'
+			&& bt_nofile(curbuf)
 			&& curbuf->b_p_bh[0] == 'w')
 		{
 		    /* Already a "wipeout" buffer, make it empty. */
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -62,6 +62,7 @@ int bt_terminal(buf_T *buf);
 int bt_help(buf_T *buf);
 int bt_prompt(buf_T *buf);
 int bt_popup(buf_T *buf);
+int bt_nofilename(buf_T *buf);
 int bt_nofile(buf_T *buf);
 int bt_dontwrite(buf_T *buf);
 int bt_dontwrite_msg(buf_T *buf);
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4135,7 +4135,7 @@ qf_open_new_cwindow(qf_info_T *qi, int h
     // Set the options for the quickfix buffer/window (if not already done)
     // Do this even if the quickfix buffer was already present, as an autocmd
     // might have previously deleted (:bdelete) the quickfix buffer.
-    if (curbuf->b_p_bt[0] != 'q')
+    if (bt_quickfix(curbuf))
 	qf_set_cwindow_options();
 
     // Only set the height when still in the same tab page and there is no
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1547,
+/**/
     1546,
 /**/
     1545,