updated for version 7.0014
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index ba36700..2568b19 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -2040,7 +2040,7 @@
}
curbuf->b_flags |= BF_NOTEDITED;
buf = buflist_new(fname, xfname, curwin->w_cursor.lnum, 0);
- if (buf != NULL)
+ if (buf != NULL && !cmdmod.keepalt)
curwin->w_alt_fnum = buf->b_fnum;
vim_free(fname);
vim_free(sfname);
@@ -2689,7 +2689,8 @@
if (!(flags & ECMD_ADDBUF))
#endif
{
- curwin->w_alt_fnum = curbuf->b_fnum;
+ if (!cmdmod.keepalt)
+ curwin->w_alt_fnum = curbuf->b_fnum;
buflist_altfpos();
}
@@ -4736,7 +4737,8 @@
alt_fnum = curbuf->b_fnum;
(void)do_ecmd(0, NULL, NULL, NULL, ECMD_LASTL,
ECMD_HIDE + ECMD_SET_HELP);
- curwin->w_alt_fnum = alt_fnum;
+ if (!cmdmod.keepalt)
+ curwin->w_alt_fnum = alt_fnum;
empty_fnum = curbuf->b_fnum;
}
}
@@ -4756,7 +4758,7 @@
}
/* keep the previous alternate file */
- if (alt_fnum != 0 && curwin->w_alt_fnum == empty_fnum)
+ if (alt_fnum != 0 && curwin->w_alt_fnum == empty_fnum && !cmdmod.keepalt)
curwin->w_alt_fnum = alt_fnum;
erret: