# HG changeset patch # User Bram Moolenaar # Date 1645532102 -3600 # Node ID 041de9fe95db6944182318587719b4deaedeaf42 # Parent db217bde229276eba0d042e04a3a1942e086153d patch 8.2.4438: crash on exit when using cmdline window Commit: https://github.com/vim/vim/commit/ca0c1caa36823ea8e61184268d7337e79995352f Author: Bram Moolenaar Date: Tue Feb 22 12:08:07 2022 +0000 patch 8.2.4438: crash on exit when using cmdline window Problem: Crash on exit when using cmdline window. Solution: Reset "cmdwin_type" before exiting. (closes https://github.com/vim/vim/issues/9817) diff --git a/src/testdir/test_exit.vim b/src/testdir/test_exit.vim --- a/src/testdir/test_exit.vim +++ b/src/testdir/test_exit.vim @@ -1,6 +1,7 @@ " Tests for exiting Vim. source shared.vim +source check.vim func Test_exiting() let after =<< trim [CODE] @@ -109,4 +110,17 @@ func Test_exit_code() call delete('Xtestout') endfunc +func Test_exit_error_reading_input() + CheckNotGui + + call writefile([":au VimLeave * call writefile(['l = ' .. v:exiting], 'Xtestout')", ":tabnew\q:"], 'Xscript') + + if RunVim([], [], '< Xscript') + call assert_equal(['l = 1'], readfile('Xtestout')) + endif + call delete('Xscript') + call delete('Xtestout') +endfun + + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/ui.c b/src/ui.c --- a/src/ui.c +++ b/src/ui.c @@ -1065,6 +1065,9 @@ read_error_exit(void) if (silent_mode) // Normal way to exit for "ex -s" getout(0); STRCPY(IObuff, _("Vim: Error reading input, exiting...\n")); +#ifdef FEAT_CMDWIN + cmdwin_type = 0; +#endif preserve_exit(); } diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 4438, +/**/ 4437, /**/ 4436,