diff options
author | zeertzjq <zeertzjq@outlook.com> | 2022-02-23 12:23:08 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2022-02-23 12:23:08 +0000 |
commit | 6a8b13614e5bcb233d20403ae9f008ccba152be3 (patch) | |
tree | 0694a62d65b18effbea5b24892553f939eada10a | |
parent | 4791fcd82565adcc60b86830e0bb6cd5b6eea0a6 (diff) | |
download | vim-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.vim | 1 | ||||
-rw-r--r-- | src/ui.c | 3 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 4 |
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') @@ -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); |