diff options
-rw-r--r-- | src/buffer.c | 14 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/buffer.c b/src/buffer.c index 183429159..c84e6d585 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1363,7 +1363,9 @@ set_curbuf(buf, action) int action; { buf_T *prevbuf; +#ifdef FEAT_WINDOWS win_T *prevwin; +#endif int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL || action == DOBUF_WIPE); @@ -1403,16 +1405,20 @@ set_curbuf(buf, action) if (buf_valid(prevbuf)) #endif { +#ifdef FEAT_WINDOWS prevwin = curwin; +#endif if (prevbuf == curbuf) u_sync(FALSE); close_buffer(prevbuf == curwin->w_buffer ? curwin : NULL, prevbuf, unload ? action : (action == DOBUF_GOTO && !P_HID(prevbuf) && !bufIsChanged(prevbuf)) ? DOBUF_UNLOAD : 0, FALSE); +#ifdef FEAT_WINDOWS if (curwin != prevwin && win_valid(prevwin)) /* autocommands changed curwin, Grr! */ curwin = prevwin; +#endif } } #ifdef FEAT_AUTOCMD @@ -1420,12 +1426,12 @@ set_curbuf(buf, action) * it did ":bunload") or aborted the script processing! * If curwin->w_buffer is null, enter_buffer() will make it valid again */ if ((buf_valid(buf) && buf != curbuf -#ifdef FEAT_EVAL +# ifdef FEAT_EVAL && !aborting() -#endif -#ifdef FEAT_WINDOWS +# endif +# ifdef FEAT_WINDOWS ) || curwin->w_buffer == NULL -#endif +# endif ) #endif enter_buffer(buf); diff --git a/src/version.c b/src/version.c index 0b5473858..38818ee7d 100644 --- a/src/version.c +++ b/src/version.c @@ -715,6 +715,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 563, +/**/ 562, /**/ 561, |