commit 001f19de2880192006eda139aa07c62a7f481422
parent b41f2bcae77ca2efa52af4f3dd1ba33074d576cf
Author: zeertzjq <zeertzjq@outlook.com>
Date: Thu, 14 Jul 2022 20:59:17 +0800
Merge pull request #19364 from zeertzjq/vim-8.2.0921
vim-patch:8.2.{0921,0926}: CTRL-W T in cmdline window causes trouble
Diffstat:
2 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim
@@ -1326,22 +1326,6 @@ func Test_cmdwin_autocmd()
augroup! CmdWin
endfunc
-func Test_cmdwin_jump_to_win()
- call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:')
- new
- set modified
- call assert_fails('call feedkeys("q/:qall\<CR>", "xt")', 'E162:')
- close!
- call feedkeys("q/:close\<CR>", "xt")
- call assert_equal(1, winnr('$'))
- call feedkeys("q/:exit\<CR>", "xt")
- call assert_equal(1, winnr('$'))
-
- " opening command window twice should fail
- call assert_beeps('call feedkeys("q:q:\<CR>\<CR>", "xt")')
- call assert_equal(1, winnr('$'))
-endfunc
-
func Test_cmdlineclear_tabenter()
" See test/functional/legacy/cmdline_spec.lua
CheckScreendump
@@ -1379,6 +1363,22 @@ func Test_cmdline_expand_special()
call delete('Xfile.java')
endfunc
+func Test_cmdwin_jump_to_win()
+ call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:')
+ new
+ set modified
+ call assert_fails('call feedkeys("q/:qall\<CR>", "xt")', 'E162:')
+ close!
+ call feedkeys("q/:close\<CR>", "xt")
+ call assert_equal(1, winnr('$'))
+ call feedkeys("q/:exit\<CR>", "xt")
+ call assert_equal(1, winnr('$'))
+
+ " opening command window twice should fail
+ call assert_beeps('call feedkeys("q:q:\<CR>\<CR>", "xt")')
+ call assert_equal(1, winnr('$'))
+endfunc
+
" Test for backtick expression in the command line
func Test_cmd_backtick()
%argd
@@ -1698,6 +1698,27 @@ func Test_cmdwin_blocked_commands()
call assert_fails('call feedkeys("q:Q\<CR>", "xt")', 'E11:')
call assert_fails('call feedkeys("q:Z\<CR>", "xt")', 'E11:')
call assert_fails('call feedkeys("q:\<F1>\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>s\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>v\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>^\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>n\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>z\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>o\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>w\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>j\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>k\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>h\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>l\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>T\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>x\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>r\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>R\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>K\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>}\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>]\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>f\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>d\<CR>", "xt")', 'E11:')
+ call assert_fails('call feedkeys("q:\<C-W>g\<CR>", "xt")', 'E11:')
endfunc
" test that ";" works to find a match at the start of the first line
diff --git a/src/nvim/window.c b/src/nvim/window.c
@@ -331,6 +331,7 @@ newwindow:
// move window to new tab page
case 'T':
+ CHECK_CMDWIN;
if (one_window(curwin)) {
msg(_(m_onlyone));
} else {