summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-02-23 12:23:08 +0000
committerBram Moolenaar <Bram@vim.org>2022-02-23 12:23:08 +0000
commit6a8b13614e5bcb233d20403ae9f008ccba152be3 (patch)
tree0694a62d65b18effbea5b24892553f939eada10a
parent4791fcd82565adcc60b86830e0bb6cd5b6eea0a6 (diff)
downloadvim-git-6a8b13614e5bcb233d20403ae9f008ccba152be3.tar.gz
patch 8.2.4454: resetting cmdwin_type only for one situationv8.2.4454
Problem: Resetting cmdwin_type only for one situation. Solution: Reset cmdwin_type before closing windows. (closes #9822)
-rw-r--r--src/testdir/test_exit.vim1
-rw-r--r--src/ui.c3
-rw-r--r--src/version.c2
-rw-r--r--src/window.c4
4 files changed, 7 insertions, 3 deletions
diff --git a/src/testdir/test_exit.vim b/src/testdir/test_exit.vim
index 7e50e78ba..c05374cb8 100644
--- 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')
diff --git a/src/ui.c b/src/ui.c
index bf6ea858b..a6cee804a 100644
--- 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();
}
diff --git a/src/version.c b/src/version.c
index 57f32cbe4..5da1833d2 100644
--- 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,
diff --git a/src/window.c b/src/window.c
index 7da7b89e8..ceb7d5958 100644
--- 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);