aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSean Dewar <seandewar@users.noreply.github.com>2022-02-25 00:17:17 +0000
committerSean Dewar <seandewar@users.noreply.github.com>2022-03-14 13:10:57 +0000
commit7e19c18a544b5f1f15cec0444385ddae80687a26 (patch)
tree712dbd3d26e996bfcbd358e1bead95073a2bcf40 /src
parent70582bd9259e4f503757ea7b4bf8b4b994218ac7 (diff)
downloadrneovim-7e19c18a544b5f1f15cec0444385ddae80687a26.tar.gz
rneovim-7e19c18a544b5f1f15cec0444385ddae80687a26.tar.bz2
rneovim-7e19c18a544b5f1f15cec0444385ddae80687a26.zip
vim-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 vim/vim#9822) https://github.com/vim/vim/commit/6a8b13614e5bcb233d20403ae9f008ccba152be3 Move the check to win_free_all to match Vim.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/memory.c3
-rw-r--r--src/nvim/testdir/test_exit.vim1
-rw-r--r--src/nvim/window.c3
3 files changed, 4 insertions, 3 deletions
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index 373693a6fe..d68ca6b62e 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -575,9 +575,6 @@ void free_all_mem(void)
// Don't want to trigger autocommands from here on.
block_autocmds();
- // Ensure cmdline window doesn't prevent closing tabs and windows.
- cmdwin_type = 0;
-
// Close all tabs and windows. Reset 'equalalways' to avoid redraws.
p_ea = false;
if (first_tabpage->tp_next != NULL) {
diff --git a/src/nvim/testdir/test_exit.vim b/src/nvim/testdir/test_exit.vim
index 4e5da49adb..befcaec2b2 100644
--- a/src/nvim/testdir/test_exit.vim
+++ b/src/nvim/testdir/test_exit.vim
@@ -123,6 +123,7 @@ func Test_exit_error_reading_input()
" Nvim requires "-s -" to read stdin as Normal mode input
" if RunVim([], [], '<Xscript')
if RunVim([], [], '-s - <Xscript')
+ call assert_equal(1, v:shell_error)
call assert_equal(['l = 1'], readfile('Xtestout'))
endif
call delete('Xscript')
diff --git a/src/nvim/window.c b/src/nvim/window.c
index 3c34620db4..f2b84a4124 100644
--- a/src/nvim/window.c
+++ b/src/nvim/window.c
@@ -2904,6 +2904,9 @@ void win_free_all(void)
{
int dummy;
+ // avoid an error for switching tabpage with the cmdline window open
+ cmdwin_type = 0;
+
while (first_tabpage->tp_next != NULL) {
tabpage_close(TRUE);
}