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

updated for version 7.0-162

This commit is contained in:
Bram Moolenaar
2006-11-07 21:59:47 +00:00
parent 908d53a230
commit 84212825ed
3 changed files with 68 additions and 14 deletions

View File

@@ -4220,7 +4220,7 @@ alist_name(aep)
/* Use the name from the associated buffer if it exists. */ /* Use the name from the associated buffer if it exists. */
bp = buflist_findnr(aep->ae_fnum); bp = buflist_findnr(aep->ae_fnum);
if (bp == NULL) if (bp == NULL || bp->b_fname == NULL)
return aep->ae_fname; return aep->ae_fname;
return bp->b_fname; return bp->b_fname;
} }

View File

@@ -2392,7 +2392,23 @@ create_windows(parmp)
(void)open_buffer(FALSE, NULL); /* create memfile, read file */ (void)open_buffer(FALSE, NULL); /* create memfile, read file */
#if defined(HAS_SWAP_EXISTS_ACTION) #if defined(HAS_SWAP_EXISTS_ACTION)
check_swap_exists_action(); if (swap_exists_action == SEA_QUIT)
{
if (got_int || only_one_window())
{
/* abort selected or quit and only one window */
did_emsg = FALSE; /* avoid hit-enter prompt */
getout(1);
}
/* We can't close the window, it would disturb what
* happens next. Clear the file name and set the arg
* index to -1 to delete it later. */
setfname(curbuf, NULL, NULL, FALSE);
curwin->w_arg_idx = -1;
swap_exists_action = SEA_NONE;
}
else
handle_swap_exists(NULL);
#endif #endif
#ifdef FEAT_AUTOCMD #ifdef FEAT_AUTOCMD
dorewind = TRUE; /* start again */ dorewind = TRUE; /* start again */
@@ -2432,6 +2448,8 @@ edit_buffers(parmp)
{ {
int arg_idx; /* index in argument list */ int arg_idx; /* index in argument list */
int i; int i;
int advance = TRUE;
buf_T *old_curbuf;
# ifdef FEAT_AUTOCMD # ifdef FEAT_AUTOCMD
/* /*
@@ -2440,31 +2458,65 @@ edit_buffers(parmp)
++autocmd_no_enter; ++autocmd_no_enter;
++autocmd_no_leave; ++autocmd_no_leave;
# endif # endif
/* When w_arg_idx is -1 remove the window (see create_windows()). */
if (curwin->w_arg_idx == -1)
{
win_close(curwin, TRUE);
advance = FALSE;
}
arg_idx = 1; arg_idx = 1;
for (i = 1; i < parmp->window_count; ++i) for (i = 1; i < parmp->window_count; ++i)
{ {
if (parmp->window_layout == WIN_TABS) /* When w_arg_idx is -1 remove the window (see create_windows()). */
if (curwin->w_arg_idx == -1)
{ {
if (curtab->tp_next == NULL) /* just checking */ ++arg_idx;
break; win_close(curwin, TRUE);
goto_tabpage(0); advance = FALSE;
} continue;
else
{
if (curwin->w_next == NULL) /* just checking */
break;
win_enter(curwin->w_next, FALSE);
} }
if (advance)
{
if (parmp->window_layout == WIN_TABS)
{
if (curtab->tp_next == NULL) /* just checking */
break;
goto_tabpage(0);
}
else
{
if (curwin->w_next == NULL) /* just checking */
break;
win_enter(curwin->w_next, FALSE);
}
}
advance = TRUE;
/* Only open the file if there is no file in this window yet (that can /* Only open the file if there is no file in this window yet (that can
* happen when .vimrc contains ":sall") */ * happen when .vimrc contains ":sall"). */
if (curbuf == firstwin->w_buffer || curbuf->b_ffname == NULL) if (curbuf == firstwin->w_buffer || curbuf->b_ffname == NULL)
{ {
curwin->w_arg_idx = arg_idx; curwin->w_arg_idx = arg_idx;
/* edit file from arg list, if there is one */ /* Edit file from arg list, if there is one. When "Quit" selected
* at the ATTENTION prompt close the window. */
old_curbuf = curbuf;
(void)do_ecmd(0, arg_idx < GARGCOUNT (void)do_ecmd(0, arg_idx < GARGCOUNT
? alist_name(&GARGLIST[arg_idx]) : NULL, ? alist_name(&GARGLIST[arg_idx]) : NULL,
NULL, NULL, ECMD_LASTL, ECMD_HIDE); NULL, NULL, ECMD_LASTL, ECMD_HIDE);
if (curbuf == old_curbuf)
{
if (got_int || only_one_window())
{
/* abort selected or quit and only one window */
did_emsg = FALSE; /* avoid hit-enter prompt */
getout(1);
}
win_close(curwin, TRUE);
advance = FALSE;
}
if (arg_idx == GARGCOUNT - 1) if (arg_idx == GARGCOUNT - 1)
arg_had_last = TRUE; arg_had_last = TRUE;
++arg_idx; ++arg_idx;

View File

@@ -666,6 +666,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 */
/**/
162,
/**/ /**/
161, 161,
/**/ /**/