Mercurial > vim
comparison src/window.c @ 28349:d3a1fc6b4da6 v8.2.4700
patch 8.2.4700: buffer remains active if WinClosed event throws an exception
Commit: https://github.com/vim/vim/commit/c947b9ae419114ebfef9725814ea41a466fcf879
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Apr 6 17:59:21 2022 +0100
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 https://github.com/vim/vim/issues/10097)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 06 Apr 2022 19:00:04 +0200 |
parents | cdaff4db7760 |
children | 68c36f734b10 |
comparison
equal
deleted
inserted
replaced
28348:b686979c523d | 28349:d3a1fc6b4da6 |
---|---|
2491 { | 2491 { |
2492 bufref_T bufref; | 2492 bufref_T bufref; |
2493 | 2493 |
2494 set_bufref(&bufref, curbuf); | 2494 set_bufref(&bufref, curbuf); |
2495 win->w_closing = TRUE; | 2495 win->w_closing = TRUE; |
2496 close_buffer(win, win->w_buffer, action, abort_if_last, FALSE); | 2496 close_buffer(win, win->w_buffer, action, abort_if_last, TRUE); |
2497 if (win_valid_any_tab(win)) | 2497 if (win_valid_any_tab(win)) |
2498 win->w_closing = FALSE; | 2498 win->w_closing = FALSE; |
2499 // Make sure curbuf is valid. It can become invalid if 'bufhidden' is | 2499 // Make sure curbuf is valid. It can become invalid if 'bufhidden' is |
2500 // "wipe". | 2500 // "wipe". |
2501 if (!bufref_valid(&bufref)) | 2501 if (!bufref_valid(&bufref)) |