mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -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:
@@ -2270,7 +2270,8 @@ buflist_findname_stat(
|
|||||||
#endif
|
#endif
|
||||||
buf_T *buf;
|
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
|
if ((buf->b_flags & BF_DUMMY) == 0 && !otherfile_buf(buf, ffname
|
||||||
#ifdef UNIX
|
#ifdef UNIX
|
||||||
, stp
|
, stp
|
||||||
@@ -2355,7 +2356,7 @@ buflist_findpat(
|
|||||||
return -1;
|
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
|
if (buf->b_p_bl == find_listed
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
&& (!diffmode || diff_mode_buf(buf))
|
&& (!diffmode || diff_mode_buf(buf))
|
||||||
@@ -2581,7 +2582,8 @@ buflist_findnr(int nr)
|
|||||||
|
|
||||||
if (nr == 0)
|
if (nr == 0)
|
||||||
nr = curwin->w_alt_fnum;
|
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)
|
if (buf->b_fnum == nr)
|
||||||
return buf;
|
return buf;
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -4292,6 +4292,10 @@ load_dummy_buffer(
|
|||||||
aucmd_restbuf(&aco);
|
aucmd_restbuf(&aco);
|
||||||
if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
|
if (newbuf_to_wipe != NULL && buf_valid(newbuf_to_wipe))
|
||||||
wipe_buffer(newbuf_to_wipe, FALSE);
|
wipe_buffer(newbuf_to_wipe, FALSE);
|
||||||
|
|
||||||
|
/* Add back the "dummy" flag, otherwise buflist_findname_stat() won't
|
||||||
|
* skip it. */
|
||||||
|
newbuf->b_flags |= BF_DUMMY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -758,6 +758,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2023,
|
||||||
/**/
|
/**/
|
||||||
2022,
|
2022,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user