summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-01-26 22:42:21 +0100
committerBram Moolenaar <Bram@vim.org>2021-01-26 22:42:21 +0100
commit21829c5f2c86cd525c8468121b4fc54c5d75bf6e (patch)
tree41396772eb831dd5c7d774d3a98016b640d7bda5
parentb7e2670b6a1de02c772af5097ba24f2a15b26eec (diff)
downloadvim-git-21829c5f2c86cd525c8468121b4fc54c5d75bf6e.tar.gz
patch 8.2.2415: no way to check for the cmdwin featurev8.2.2415
Problem: No way to check for the cmdwin feature, cmdline_hist is now always enabled. Solution: Add has('cmdwin') support. Skip arglist test on Windows temporarily.
-rw-r--r--runtime/doc/cmdline.txt2
-rw-r--r--src/evalfunc.c7
-rw-r--r--src/testdir/test_arglist.vim7
-rw-r--r--src/testdir/test_autocmd.vim6
-rw-r--r--src/testdir/test_cmdline.vim26
-rw-r--r--src/testdir/test_ins_complete.vim2
-rw-r--r--src/testdir/test_normal.vim8
-rw-r--r--src/testdir/test_tabpage.vim2
-rw-r--r--src/testdir/test_termcodes.vim2
-rw-r--r--src/testdir/test_window_cmd.vim2
-rw-r--r--src/version.c2
11 files changed, 53 insertions, 13 deletions
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index 990380f04..efb1400f1 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1096,7 +1096,7 @@ Also see |`=|.
In the command-line window the command line can be edited just like editing
text in any window. It is a special kind of window, because you cannot leave
it in a normal way.
-{not available when compiled without the |+cmdline_hist| feature}
+{not available when compiled without the |+cmdwin| feature}
OPEN *c_CTRL-F* *q:* *q/* *q?*
diff --git a/src/evalfunc.c b/src/evalfunc.c
index cc812ce33..b752c51d1 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4651,6 +4651,13 @@ f_has(typval_T *argvars, typval_T *rettv)
},
{"cmdline_compl", 1},
{"cmdline_hist", 1},
+ {"cmdwin",
+#ifdef FEAT_CMDWIN
+ 1
+#else
+ 0
+#endif
+ },
{"comments", 1},
{"conceal",
#ifdef FEAT_CONCEAL
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index b72fe2d53..620299349 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -527,6 +527,7 @@ endfunc
" Test for quitting Vim with unedited files in the argument list
func Test_quit_with_arglist()
CheckRunVimInTerminal
+
let buf = RunVimInTerminal('', {'rows': 6})
call term_sendkeys(buf, ":set nomore\n")
call term_sendkeys(buf, ":args a b c\n")
@@ -561,9 +562,13 @@ endfunc
" Test for ":all" not working when in the cmdline window
func Test_all_not_allowed_from_cmdwin()
+ CheckFeature cmdwin
+ " TODO: why does this hang on Windows?
+ CheckNotMSWindows
+
au BufEnter * all
next x
- call assert_fails(":norm 7q?x\<CR>", 'E11:')
+ call assert_fails(":norm 7q?print\<CR>", 'E11:')
au! BufEnter
endfunc
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 5ec854e67..60369c247 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2397,10 +2397,8 @@ endfunc
func Test_autocmd_CmdWinEnter()
CheckRunVimInTerminal
- " There is not cmdwin switch, so
- " test for cmdline_hist
- " (both are available with small builds)
- CheckFeature cmdline_hist
+ CheckFeature cmdwin
+
let lines =<< trim END
let b:dummy_var = 'This is a dummy'
autocmd CmdWinEnter * quit
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index cb16de124..c2bbcc6c0 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -129,7 +129,6 @@ func Test_wildmenu_screendump()
endfunc
func Test_map_completion()
- CheckFeature cmdline_compl
call feedkeys(":map <unique> <si\<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal('"map <unique> <silent>', getreg(':'))
call feedkeys(":map <script> <un\<Tab>\<Home>\"\<CR>", 'xt')
@@ -207,7 +206,6 @@ func Test_map_completion()
endfunc
func Test_match_completion()
- CheckFeature cmdline_compl
hi Aardig ctermfg=green
call feedkeys(":match \<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal('"match Aardig', getreg(':'))
@@ -216,7 +214,6 @@ func Test_match_completion()
endfunc
func Test_highlight_completion()
- CheckFeature cmdline_compl
hi Aardig ctermfg=green
call feedkeys(":hi \<Tab>\<Home>\"\<CR>", 'xt')
call assert_equal('"hi Aardig', getreg(':'))
@@ -253,7 +250,6 @@ func Test_highlight_easter_egg()
endfunc
func Test_getcompletion()
- CheckFeature cmdline_compl
let groupcount = len(getcompletion('', 'event'))
call assert_true(groupcount > 0)
let matchcount = len('File'->getcompletion('event'))
@@ -980,6 +976,8 @@ func Test_getcmdtype()
endfunc
func Test_getcmdwintype()
+ CheckFeature cmdwin
+
call feedkeys("q/:let a = getcmdwintype()\<CR>:q\<CR>", 'x!')
call assert_equal('/', a)
@@ -996,6 +994,8 @@ func Test_getcmdwintype()
endfunc
func Test_getcmdwin_autocmd()
+ CheckFeature cmdwin
+
let s:seq = []
augroup CmdWin
au WinEnter * call add(s:seq, 'WinEnter ' .. win_getid())
@@ -1108,6 +1108,8 @@ func Test_cmdline_overstrike()
endfunc
func Test_cmdwin_bug()
+ CheckFeature cmdwin
+
let winid = win_getid()
sp
try
@@ -1118,6 +1120,7 @@ func Test_cmdwin_bug()
endfunc
func Test_cmdwin_restore()
+ CheckFeature cmdwin
CheckScreendump
let lines =<< trim [SCRIPT]
@@ -1193,6 +1196,8 @@ func Test_buffers_lastused()
endfunc
func Test_cmdwin_feedkeys()
+ CheckFeature cmdwin
+
" This should not generate E488
call feedkeys("q:\<CR>", 'x')
" Using feedkeys with q: only should automatically close the cmd window
@@ -1204,6 +1209,8 @@ endfunc
" Tests for the issues fixed in 7.4.441.
" When 'cedit' is set to Ctrl-C, opening the command window hangs Vim
func Test_cmdwin_cedit()
+ CheckFeature cmdwin
+
exe "set cedit=\<C-c>"
normal! :
call assert_equal(1, winnr('$'))
@@ -1226,6 +1233,8 @@ endfunc
" Test for CmdwinEnter autocmd
func Test_cmdwin_autocmd()
+ CheckFeature cmdwin
+
augroup CmdWin
au!
autocmd CmdwinEnter * startinsert
@@ -1268,6 +1277,8 @@ func Test_cmdline_expand_special()
endfunc
func Test_cmdwin_jump_to_win()
+ CheckFeature cmdwin
+
call assert_fails('call feedkeys("q:\<C-W>\<C-W>\<CR>", "xt")', 'E11:')
new
set modified
@@ -1284,6 +1295,7 @@ func Test_cmdwin_jump_to_win()
endfunc
func Test_cmdwin_interrupted()
+ CheckFeature cmdwin
CheckScreendump
" aborting the :smile output caused the cmdline window to use the current
@@ -1570,6 +1582,8 @@ endfunc
" Test for recursively getting multiple command line inputs
func Test_cmdwin_multi_input()
+ CheckFeature cmdwin
+
call feedkeys(":\<C-R>=input('P: ')\<CR>\"cyan\<CR>\<CR>", 'xt')
call assert_equal('"cyan', @:)
endfunc
@@ -1594,6 +1608,8 @@ endfunc
" Test for normal mode commands not supported in the cmd window
func Test_cmdwin_blocked_commands()
+ CheckFeature cmdwin
+
call assert_fails('call feedkeys("q:\<C-T>\<CR>", "xt")', 'E11:')
call assert_fails('call feedkeys("q:\<C-]>\<CR>", "xt")', 'E11:')
call assert_fails('call feedkeys("q:\<C-^>\<CR>", "xt")', 'E11:')
@@ -1625,6 +1641,8 @@ endfunc
" Close the Cmd-line window in insert mode using CTRL-C
func Test_cmdwin_insert_mode_close()
+ CheckFeature cmdwin
+
%bw!
let s = ''
exe "normal q:a\<C-C>let s='Hello'\<CR>"
diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim
index b1a2a9e30..e59bd207e 100644
--- a/src/testdir/test_ins_complete.vim
+++ b/src/testdir/test_ins_complete.vim
@@ -343,6 +343,8 @@ func Test_compl_feedkeys()
endfunc
func Test_compl_in_cmdwin()
+ CheckFeature cmdwin
+
set wildmenu wildchar=<Tab>
com! -nargs=1 -complete=command GetInput let input = <q-args>
com! -buffer TestCommand echo 'TestCommand'
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index d2f1fab57..8aef41ddd 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -2584,9 +2584,11 @@ func Test_normal40_ctrl_bsl()
call assert_false(&insertmode)
call assert_beeps("normal! \<C-\>\<C-A>", 'xt')
- " Using CTRL-\ CTRL-N in cmd window should close the window
- call feedkeys("q:\<C-\>\<C-N>", 'xt')
- call assert_equal('', getcmdwintype())
+ if has('cmdwin')
+ " Using CTRL-\ CTRL-N in cmd window should close the window
+ call feedkeys("q:\<C-\>\<C-N>", 'xt')
+ call assert_equal('', getcmdwintype())
+ endif
" clean up
bw!
diff --git a/src/testdir/test_tabpage.vim b/src/testdir/test_tabpage.vim
index 38a6283eb..dac6d809a 100644
--- a/src/testdir/test_tabpage.vim
+++ b/src/testdir/test_tabpage.vim
@@ -617,6 +617,8 @@ endfunc
" Test for closing the tab page from a command window
func Test_tabpage_close_cmdwin()
+ CheckFeature cmdwin
+
tabnew
call feedkeys("q/:tabclose\<CR>\<Esc>", 'xt')
call assert_equal(2, tabpagenr('$'))
diff --git a/src/testdir/test_termcodes.vim b/src/testdir/test_termcodes.vim
index 055ed8b65..040869cc0 100644
--- a/src/testdir/test_termcodes.vim
+++ b/src/testdir/test_termcodes.vim
@@ -367,6 +367,8 @@ endfunc
" Test for using the mouse to increaes the height of the cmdline window
func Test_mouse_cmdwin_resize()
+ CheckFeature cmdwin
+
let save_mouse = &mouse
let save_term = &term
let save_ttymouse = &ttymouse
diff --git a/src/testdir/test_window_cmd.vim b/src/testdir/test_window_cmd.vim
index 8a9748849..f26b44746 100644
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -19,6 +19,8 @@ func Test_window_cmd_ls0_with_split()
endfunc
func Test_window_cmd_cmdwin_with_vsp()
+ CheckFeature cmdwin
+
let efmt = 'Expected 0 but got %d (in ls=%d, %s window)'
for v in range(0, 2)
exec "set ls=" . v
diff --git a/src/version.c b/src/version.c
index 071a36e86..24a1d7fd4 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 */
/**/
+ 2415,
+/**/
2414,
/**/
2413,