mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
updated for version 7.4.646
Problem: ":bufdo" may start at a deleted buffer. Solution: Find the first not deleted buffer. (Shane Harper)
This commit is contained in:
parent
8da9bbfd02
commit
e25bb90b2e
@ -2440,7 +2440,7 @@ ex_listdo(eap)
|
||||
win_T *wp;
|
||||
tabpage_T *tp;
|
||||
#endif
|
||||
buf_T *buf;
|
||||
buf_T *buf = curbuf;
|
||||
int next_fnum = 0;
|
||||
#if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL)
|
||||
char_u *save_ei = NULL;
|
||||
@ -2493,20 +2493,28 @@ ex_listdo(eap)
|
||||
case CMD_argdo:
|
||||
i = eap->line1 - 1;
|
||||
break;
|
||||
case CMD_bufdo:
|
||||
i = eap->line1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
/* set pcmark now */
|
||||
if (eap->cmdidx == CMD_bufdo)
|
||||
goto_buffer(eap, DOBUF_FIRST, FORWARD, i);
|
||||
{
|
||||
/* Advance to the first listed buffer after "eap->line1". */
|
||||
for (buf = firstbuf; buf != NULL && (buf->b_fnum < eap->line1
|
||||
|| !buf->b_p_bl); buf = buf->b_next)
|
||||
if (buf->b_fnum > eap->line2)
|
||||
{
|
||||
buf = NULL;
|
||||
break;
|
||||
}
|
||||
if (buf != NULL)
|
||||
goto_buffer(eap, DOBUF_FIRST, FORWARD, buf->b_fnum);
|
||||
}
|
||||
else
|
||||
setpcmark();
|
||||
listcmd_busy = TRUE; /* avoids setting pcmark below */
|
||||
|
||||
while (!got_int)
|
||||
while (!got_int && buf != NULL)
|
||||
{
|
||||
if (eap->cmdidx == CMD_argdo)
|
||||
{
|
||||
|
@ -141,6 +141,7 @@ STARTTEST
|
||||
:let buffers = ''
|
||||
:.,$-bufdo let buffers .= ' '.bufnr('%')
|
||||
:call add(g:lines, 'bufdo:' . buffers)
|
||||
:3bd
|
||||
:let buffers = ''
|
||||
:3,7bufdo let buffers .= ' '.bufnr('%')
|
||||
:call add(g:lines, 'bufdo:' . buffers)
|
||||
|
@ -34,5 +34,5 @@ aaa: 0 bbb: 0 ccc: 0
|
||||
argdo: c d e
|
||||
windo: 2 3 4
|
||||
bufdo: 2 3 4 5 6 7 8 9 10 15
|
||||
bufdo: 3 4 5 6 7
|
||||
bufdo: 4 5 6 7
|
||||
tabdo: 2 3 4
|
||||
|
@ -741,6 +741,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
646,
|
||||
/**/
|
||||
645,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user