Mercurial > vim
changeset 28211:522864f990ec v8.2.4631
patch 8.2.4631: crash when switching window in BufWipeout autocommand
Commit: https://github.com/vim/vim/commit/347538fad0c503249ebdedd5884c2081257c9f61
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 26 16:28:06 2022 +0000
patch 8.2.4631: crash when switching window in BufWipeout autocommand
Problem: Crash when switching window in BufWipeout autocommand.
Solution: Put any buffer in the window to avoid it being NULL.
(closes #10024)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 26 Mar 2022 17:30:03 +0100 |
parents | afc77faada78 |
children | 35eab16cffae |
files | src/buffer.c src/testdir/test_autocmd.vim src/version.c src/window.c |
diffstat | 4 files changed, 51 insertions(+), 35 deletions(-) [+] |
line wrap: on
line diff
--- a/src/buffer.c +++ b/src/buffer.c @@ -708,6 +708,10 @@ aucmd_abort: */ if (wipe_buf) { + // Do not wipe out the buffer if it is used in a window. + if (buf->b_nwindows > 0) + return FALSE; + if (action == DOBUF_WIPE_REUSE) { // we can re-use this buffer number, store it
index 688508a856da55757a0a030fa7b513c132295715..39ba9af7dcb42dd0d9b8a9de9992d2c2fa9f0f38 GIT binary patch literal 88970 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
--- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 4631, +/**/ 4630, /**/ 4629,
--- a/src/window.c +++ b/src/window.c @@ -2285,6 +2285,41 @@ entering_window(win_T *win) } #endif + static void +win_init_empty(win_T *wp) +{ + redraw_win_later(wp, NOT_VALID); + wp->w_lines_valid = 0; + wp->w_cursor.lnum = 1; + wp->w_curswant = wp->w_cursor.col = 0; + wp->w_cursor.coladd = 0; + wp->w_pcmark.lnum = 1; // pcmark not cleared but set to line 1 + wp->w_pcmark.col = 0; + wp->w_prev_pcmark.lnum = 0; + wp->w_prev_pcmark.col = 0; + wp->w_topline = 1; +#ifdef FEAT_DIFF + wp->w_topfill = 0; +#endif + wp->w_botline = 2; +#if defined(FEAT_SYN_HL) || defined(FEAT_SPELL) + wp->w_s = &wp->w_buffer->b_s; +#endif +#ifdef FEAT_TERMINAL + term_reset_wincolor(wp); +#endif +} + +/* + * Init the current window "curwin". + * Called when a new file is being edited. + */ + void +curwin_init(void) +{ + win_init_empty(curwin); +} + /* * Close all windows for buffer "buf". */ @@ -2786,7 +2821,17 @@ win_close_othertab(win_T *win, int free_ for (ptp = first_tabpage; ptp != NULL && ptp != tp; ptp = ptp->tp_next) ; if (ptp == NULL || tp == curtab) + { + // If the buffer was removed from the window we have to give it any + // buffer. + if (win_valid_any_tab(win) && win->w_buffer == NULL) + { + win->w_buffer = firstbuf; + ++firstbuf->b_nwindows; + win_init_empty(win); + } return; + } // Autocommands may have closed the window already. for (wp = tp->tp_firstwin; wp != NULL && wp != win; wp = wp->w_next) @@ -3685,41 +3730,6 @@ close_others( emsg(_(e_other_window_contains_changes)); } - static void -win_init_empty(win_T *wp) -{ - redraw_win_later(wp, NOT_VALID); - wp->w_lines_valid = 0; - wp->w_cursor.lnum = 1; - wp->w_curswant = wp->w_cursor.col = 0; - wp->w_cursor.coladd = 0; - wp->w_pcmark.lnum = 1; // pcmark not cleared but set to line 1 - wp->w_pcmark.col = 0; - wp->w_prev_pcmark.lnum = 0; - wp->w_prev_pcmark.col = 0; - wp->w_topline = 1; -#ifdef FEAT_DIFF - wp->w_topfill = 0; -#endif - wp->w_botline = 2; -#if defined(FEAT_SYN_HL) || defined(FEAT_SPELL) - wp->w_s = &wp->w_buffer->b_s; -#endif -#ifdef FEAT_TERMINAL - term_reset_wincolor(wp); -#endif -} - -/* - * Init the current window "curwin". - * Called when a new file is being edited. - */ - void -curwin_init(void) -{ - win_init_empty(curwin); -} - /* * Allocate the first window and put an empty buffer in it. * Called from main().