Patch 8.1.1547

6 views
Skip to first unread message

Bram Moolenaar

unread,
Jun 15, 2019, 1:37:38 PM6/15/19
to vim...@googlegroups.com

Patch 8.1.1547
Problem: Functionality of bt_nofile() is confusing.
Solution: Split into bt_nofile() and bt_nofilename().
Files: src/buffer.c, src/proto/buffer.pro, src/evalfunc.c, src/ex_cmds.c,
src/ex_docmd.c, src/fileio.c, src/popupmnu.c, src/quickfix.c


*** ../vim-8.1.1546/src/buffer.c 2019-06-08 18:07:17.748161711 +0200
--- src/buffer.c 2019-06-15 19:35:22.293234143 +0200
***************
*** 5698,5704 ****
* buffer. This means the buffer name is not a file name.
*/
int
! bt_nofile(buf_T *buf)
{
return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f')
|| buf->b_p_bt[0] == 'a'
--- 5698,5704 ----
* buffer. This means the buffer name is not a file name.
*/
int
! 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,5712 ****
--- 5707,5721 ----
}

/*
+ * 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,5778 ****

/* There is no _file_ when 'buftype' is "nofile", b_sfname
* contains the name as specified by the user. */
! if (bt_nofile(buf))
{
#ifdef FEAT_TERMINAL
if (buf->b_term != NULL)
--- 5781,5787 ----

/* There is no _file_ when 'buftype' is "nofile", b_sfname
* contains the name as specified by the user. */
! if (bt_nofilename(buf))
{
#ifdef FEAT_TERMINAL
if (buf->b_term != NULL)
*** ../vim-8.1.1546/src/proto/buffer.pro 2019-05-25 19:51:03.772408479 +0200
--- src/proto/buffer.pro 2019-06-15 19:34:59.165365805 +0200
***************
*** 62,67 ****
--- 62,68 ----
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);
*** ../vim-8.1.1546/src/evalfunc.c 2019-06-12 22:42:05.020146044 +0200
--- src/evalfunc.c 2019-06-15 19:31:01.330703171 +0200
***************
*** 1943,1949 ****
if (buf->b_fname != NULL
&& (path_with_url(buf->b_fname)
#ifdef FEAT_QUICKFIX
! || bt_nofile(buf)
#endif
)
&& STRCMP(buf->b_fname, avar->vval.v_string) == 0)
--- 1943,1949 ----
if (buf->b_fname != NULL
&& (path_with_url(buf->b_fname)
#ifdef FEAT_QUICKFIX
! || bt_nofilename(buf)
#endif
)
&& STRCMP(buf->b_fname, avar->vval.v_string) == 0)
*** ../vim-8.1.1546/src/ex_cmds.c 2019-05-28 23:08:12.060648736 +0200
--- src/ex_cmds.c 2019-06-15 19:31:11.834644840 +0200
***************
*** 3399,3405 ****
|| (buf->b_flags & BF_READERR))
&& !p_wa
#ifdef FEAT_QUICKFIX
! && !bt_nofile(buf)
#endif
&& vim_fexists(ffname))
{
--- 3399,3405 ----
|| (buf->b_flags & BF_READERR))
&& !p_wa
#ifdef FEAT_QUICKFIX
! && !bt_nofilename(buf)
#endif
&& vim_fexists(ffname))
{
*** ../vim-8.1.1546/src/ex_docmd.c 2019-06-15 16:05:53.111933852 +0200
--- src/ex_docmd.c 2019-06-15 19:31:40.146487188 +0200
***************
*** 9909,9915 ****
&& wp->w_buffer->b_ffname != NULL
&& !bt_help(wp->w_buffer)
#ifdef FEAT_QUICKFIX
! && !bt_nofile(wp->w_buffer)
#endif
)
{
--- 9909,9915 ----
&& wp->w_buffer->b_ffname != NULL
&& !bt_help(wp->w_buffer)
#ifdef FEAT_QUICKFIX
! && !bt_nofilename(wp->w_buffer)
#endif
)
{
***************
*** 10236,10242 ****
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)
#endif
)
return (ssop_flags & SSOP_BLANK);
--- 10236,10242 ----
if (wp->w_buffer->b_fname == NULL
#ifdef FEAT_QUICKFIX
/* When 'buftype' is "nofile" can't restore the window contents. */
! || bt_nofilename(wp->w_buffer)
#endif
)
return (ssop_flags & SSOP_BLANK);
***************
*** 10323,10329 ****
*/
if (wp->w_buffer->b_ffname != NULL
# ifdef FEAT_QUICKFIX
! && !bt_nofile(wp->w_buffer)
# endif
)
{
--- 10323,10329 ----
*/
if (wp->w_buffer->b_ffname != NULL
# ifdef FEAT_QUICKFIX
! && !bt_nofilename(wp->w_buffer)
# endif
)
{
*** ../vim-8.1.1546/src/fileio.c 2019-06-08 18:07:17.748161711 +0200
--- src/fileio.c 2019-06-15 19:32:14.538295003 +0200
***************
*** 3160,3166 ****
&& whole
&& buf == curbuf
#ifdef FEAT_QUICKFIX
! && !bt_nofile(buf)
#endif
&& !filtering
&& (!append || vim_strchr(p_cpo, CPO_FNAMEAPP) != NULL)
--- 3160,3166 ----
&& whole
&& buf == curbuf
#ifdef FEAT_QUICKFIX
! && !bt_nofilename(buf)
#endif
&& !filtering
&& (!append || vim_strchr(p_cpo, CPO_FNAMEAPP) != NULL)
***************
*** 3237,3243 ****
sfname, sfname, FALSE, curbuf, eap)))
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofile(curbuf))
nofile_err = TRUE;
else
#endif
--- 3237,3243 ----
sfname, sfname, FALSE, curbuf, eap)))
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofilename(curbuf))
nofile_err = TRUE;
else
#endif
***************
*** 3270,3276 ****
else
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofile(curbuf))
nofile_err = TRUE;
else
#endif
--- 3270,3276 ----
else
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofilename(curbuf))
nofile_err = TRUE;
else
#endif
***************
*** 3284,3290 ****
sfname, sfname, FALSE, curbuf, eap)))
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofile(curbuf))
nofile_err = TRUE;
else
#endif
--- 3284,3290 ----
sfname, sfname, FALSE, curbuf, eap)))
{
#ifdef FEAT_QUICKFIX
! if (overwriting && bt_nofilename(curbuf))
nofile_err = TRUE;
else
#endif
***************
*** 6083,6089 ****

if (buf->b_fname != NULL
#ifdef FEAT_QUICKFIX
! && !bt_nofile(buf)
#endif
&& !path_with_url(buf->b_fname)
&& (force
--- 6083,6089 ----

if (buf->b_fname != NULL
#ifdef FEAT_QUICKFIX
! && !bt_nofilename(buf)
#endif
&& !path_with_url(buf->b_fname)
&& (force
*** ../vim-8.1.1546/src/popupmnu.c 2019-06-08 16:01:10.643493653 +0200
--- src/popupmnu.c 2019-06-15 19:34:15.097615956 +0200
***************
*** 727,733 ****
if (!resized
&& curbuf->b_nwindows == 1
&& curbuf->b_fname == NULL
! && curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f'
&& curbuf->b_p_bh[0] == 'w')
{
/* Already a "wipeout" buffer, make it empty. */
--- 727,733 ----
if (!resized
&& curbuf->b_nwindows == 1
&& curbuf->b_fname == NULL
! && bt_nofile(curbuf)
&& curbuf->b_p_bh[0] == 'w')
{
/* Already a "wipeout" buffer, make it empty. */
*** ../vim-8.1.1546/src/quickfix.c 2019-06-07 21:37:10.409300183 +0200
--- src/quickfix.c 2019-06-15 19:34:44.665448224 +0200
***************
*** 4135,4141 ****
// 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')
qf_set_cwindow_options();

// Only set the height when still in the same tab page and there is no
--- 4135,4141 ----
// 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 (bt_quickfix(curbuf))
qf_set_cwindow_options();

// Only set the height when still in the same tab page and there is no
*** ../vim-8.1.1546/src/version.c 2019-06-15 18:40:11.044368488 +0200
--- src/version.c 2019-06-15 19:36:17.300920114 +0200
***************
*** 779,780 ****
--- 779,782 ----
{ /* Add new patch number below this line */
+ /**/
+ 1547,
/**/

--
hundred-and-one symptoms of being an internet addict:
194. Your business cards contain your e-mail and home page address.

/// Bram Moolenaar -- Br...@Moolenaar.net -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
Reply all
Reply to author
Forward
0 new messages