Mercurial > vim
changeset 23784:34a95c4bd647 v8.2.2433
patch 8.2.2433: opening cmdline window gives error in BufLeave autocommand
Commit: https://github.com/vim/vim/commit/b63f3ca66db20f7b135aae706d36be538f91f8cc
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 30 21:40:03 2021 +0100
patch 8.2.2433: opening cmdline window gives error in BufLeave autocommand
Problem: Opening cmdline window gives error in BufLeave autocommand.
Solution: Reset cmdwin_type when triggering the autocommand.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 30 Jan 2021 21:45:03 +0100 |
parents | de88fbcda74a |
children | 186b22ebe68d |
files | src/ex_cmds.c src/testdir/test_cmdline.vim src/version.c |
diffstat | 3 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -2710,6 +2710,12 @@ do_ecmd( */ if (buf != curbuf) { +#ifdef FEAT_CMDWIN + int save_cmdwin_type = cmdwin_type; + + // BufLeave applies to the old buffer. + cmdwin_type = 0; +#endif /* * Be careful: The autocommands may delete any buffer and change * the current buffer. @@ -2724,6 +2730,9 @@ do_ecmd( new_name = vim_strsave(buf->b_fname); set_bufref(&au_new_curbuf, buf); apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); +#ifdef FEAT_CMDWIN + cmdwin_type = save_cmdwin_type; +#endif if (!bufref_valid(&au_new_curbuf)) { // new buffer has been deleted