summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-06-15 19:37:15 +0200
committerBram Moolenaar <Bram@vim.org>2019-06-15 19:37:15 +0200
commit26910de8b0da6abab87bd5a397330f9cbe483309 (patch)
tree5a76a713818d0973f6774edabc17b8c13fb924fb
parent0331faf71200a274377e1569fcda4f00c9cf3e2a (diff)
patch 8.1.1547: functionality of bt_nofile() is confusingv8.1.1547
Problem: Functionality of bt_nofile() is confusing. Solution: Split into bt_nofile() and bt_nofilename().
-rw-r--r--src/buffer.c13
-rw-r--r--src/evalfunc.c2
-rw-r--r--src/ex_cmds.c2
-rw-r--r--src/ex_docmd.c6
-rw-r--r--src/fileio.c10
-rw-r--r--src/popupmnu.c2
-rw-r--r--src/proto/buffer.pro1
-rw-r--r--src/quickfix.c2
-rw-r--r--src/version.c2
9 files changed, 26 insertions, 14 deletions
diff --git a/src/buffer.c b/src/buffer.c
index e6ae09d255..c3911ae2bb 100644
--- 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)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 0ef76095f4..544426fa6d 100644
--- 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)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index d7a4187b86..d1068c7cff 100644
--- 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))
{
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 91ced52a5f..438cb355aa 100644
--- 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
)
{
diff --git a/src/fileio.c b/src/fileio.c
index e6fb6bfaee..03183255e3 100644
--- 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 *dirname, int force)
if (buf->b_fname != NULL
#ifdef FEAT_QUICKFIX
- && !bt_nofile(buf)
+ && !bt_nofilename(buf)
#endif
&& !path_with_url(buf->b_fname)
&& (force
diff --git a/src/popupmnu.c b/src/popupmnu.c
index 09faa69e88..5fbb3bbd28 100644
--- 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. */
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 1748fb51f8..81be7e4bd0 100644
--- 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);
diff --git a/src/quickfix.c b/src/quickfix.c
index 290f6bcccc..d2d3302636 100644
--- a/src/quickfix.c
+++ b/src/quickfix.c
@@ -4135,7 +4135,7 @@ qf_open_new_cwindow(qf_info_T *qi, int height)
// 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
diff --git a/src/version.c b/src/version.c
index 675beb8f8c..113fb97ce0 100644
--- 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,