changeset 27825:041de9fe95db v8.2.4438

patch 8.2.4438: crash on exit when using cmdline window Commit: https://github.com/vim/vim/commit/ca0c1caa36823ea8e61184268d7337e79995352f Author: Bram Moolenaar <Bram@vim.org> 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)
author Bram Moolenaar <Bram@vim.org>
date Tue, 22 Feb 2022 13:15:02 +0100
parents db217bde2292
children 3545260c9e43
files src/testdir/test_exit.vim src/ui.c src/version.c
diffstat 3 files changed, 19 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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\<CR>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
--- 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();
 }
 
--- 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,