changeset 27857:8c8fabf093bb v8.2.4454

patch 8.2.4454: resetting cmdwin_type only for one situation Commit: https://github.com/vim/vim/commit/6a8b13614e5bcb233d20403ae9f008ccba152be3 Author: zeertzjq <zeertzjq@outlook.com> Date: Wed Feb 23 12:23:08 2022 +0000 patch 8.2.4454: resetting cmdwin_type only for one situation Problem: Resetting cmdwin_type only for one situation. Solution: Reset cmdwin_type before closing windows. (closes https://github.com/vim/vim/issues/9822)
author Bram Moolenaar <Bram@vim.org>
date Wed, 23 Feb 2022 13:30:03 +0100
parents cd7dd0a9c09f
children 6197d182d707
files src/testdir/test_exit.vim src/ui.c src/version.c src/window.c
diffstat 4 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_exit.vim
+++ b/src/testdir/test_exit.vim
@@ -119,6 +119,7 @@ func Test_exit_error_reading_input()
   call writefile([":au VimLeave * call writefile(['l = ' .. v:exiting], 'Xtestout')", ":tabnew", "q:"], 'Xscript', 'b')
 
   if RunVim([], [], '<Xscript')
+    call assert_equal(1, v:shell_error)
     call assert_equal(['l = 1'], readfile('Xtestout'))
   endif
   call delete('Xscript')
--- a/src/ui.c
+++ b/src/ui.c
@@ -1065,9 +1065,6 @@ 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 */
 /**/
+    4454,
+/**/
     4453,
 /**/
     4452,
--- a/src/window.c
+++ b/src/window.c
@@ -2856,6 +2856,10 @@ win_free_all(void)
 {
     int		dummy;
 
+#ifdef FEAT_CMDWIN
+    // avoid an error for switching tabpage with the cmdline window open
+    cmdwin_type = 0;
+#endif
     while (first_tabpage->tp_next != NULL)
 	tabpage_close(TRUE);