mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
updated for version 7.0-162
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
78
src/main.c
78
src/main.c
@@ -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;
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user