From ca0c1caa36823ea8e61184268d7337e79995352f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 22 Feb 2022 12:08:07 +0000 Subject: [PATCH] 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 #9817) --- src/testdir/test_exit.vim | 14 ++++++++++++++ src/ui.c | 3 +++ src/version.c | 2 ++ 3 files changed, 19 insertions(+) diff --git a/src/testdir/test_exit.vim b/src/testdir/test_exit.vim index 93b8f5171..b42eebfa8 100644 --- 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 index a6cee804a..bf6ea858b 100644 --- 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 index 700102901..399aef93c 100644 --- a/src/version.c +++ b/src/version.c @@ -750,6 +750,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4438, /**/ 4437, /**/ -- 2.50.1