0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

patch 7.4.2023

Problem:    buflist_findname_stat() may find a dummy buffer.
Solution:   Set the BF_DUMMY flag after loading a dummy buffer.  Start
            finding buffers from the end of the list.
This commit is contained in:
Bram Moolenaar
2016-07-10 20:27:32 +02:00
parent 25065ec375
commit ea3f2e7be4
3 changed files with 11 additions and 3 deletions

View File

@@ -2270,7 +2270,8 @@ buflist_findname_stat(
#endif
buf_T *buf;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
/* Start at the last buffer, expect to find a match sooner. */
for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
if ((buf->b_flags & BF_DUMMY) == 0 && !otherfile_buf(buf, ffname
#ifdef UNIX
, stp
@@ -2355,7 +2356,7 @@ buflist_findpat(
return -1;
}
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
if (buf->b_p_bl == find_listed
#ifdef FEAT_DIFF
&& (!diffmode || diff_mode_buf(buf))
@@ -2581,7 +2582,8 @@ buflist_findnr(int nr)
if (nr == 0)
nr = curwin->w_alt_fnum;
for (buf = firstbuf; buf != NULL; buf = buf->b_next)
/* Assume newer buffers are used more often, start from the end. */
for (buf = lastbuf; buf != NULL; buf = buf->b_prev)
if (buf->b_fnum == nr)
return buf;
return NULL;

View File

@@ -4292,6 +4292,10 @@ load_dummy_buffer(
aucmd_restbuf(&aco);
if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
wipe_buffer(newbuf_to_wipe, FALSE);
/* Add back the "dummy" flag, otherwise buflist_findname_stat() won't
* skip it. */
newbuf->b_flags |= BF_DUMMY;
}
/*

View File

@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2023,
/**/
2022,
/**/