patch 8.2.4700: buffer remains active if WinClosed event throws an exception
Problem: Buffer remains active if a WinClosed event throws an exception.
Solution: Ignore aborting() when closing the buffer. (closes #10097)
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 39ba9af..89023a1 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
Binary files differ
diff --git a/src/version.c b/src/version.c
index 120633f..6900961 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4700,
+/**/
4699,
/**/
4698,
diff --git a/src/window.c b/src/window.c
index 30fa802..8ec4823 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2493,7 +2493,7 @@
set_bufref(&bufref, curbuf);
win->w_closing = TRUE;
- close_buffer(win, win->w_buffer, action, abort_if_last, FALSE);
+ close_buffer(win, win->w_buffer, action, abort_if_last, TRUE);
if (win_valid_any_tab(win))
win->w_closing = FALSE;
// Make sure curbuf is valid. It can become invalid if 'bufhidden' is