summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-08-21 18:38:21 +0100
committerBram Moolenaar <Bram@vim.org>2022-08-21 18:38:21 +0100
commit300175fd7f874be78826a00f5cb60a7ec2f20655 (patch)
tree8ebcb4ac031d63c6144810748f397f2177bd924c /src
parente24a14118c29d910d3be59203332768b5fbd93e8 (diff)
patch 9.0.0238: Shift-Tab shows matches on cmdline when 'wildmenu' is offv9.0.0238
Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. Solution: Only show matches when 'wildmode' contains "list". (closes #10951)
Diffstat (limited to 'src')
-rw-r--r--src/ex_getln.c7
-rw-r--r--src/testdir/test_cmdline.vim18
-rw-r--r--src/version.c2
3 files changed, 26 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 04273379b3..6b62d84cf1 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2033,7 +2033,12 @@ getcmdline_int(
{
if (nextwild(&xpc, WILD_EXPAND_KEEP, 0, firstc != '@') == OK)
{
- if (xpc.xp_numfiles > 1)
+ if (xpc.xp_numfiles > 1
+ && ((!did_wild_list && (wim_flags[wim_index] & WIM_LIST))
+#ifdef FEAT_WILDMENU
+ || p_wmnu)
+#endif
+ )
{
#ifdef FEAT_WILDMENU
// Trigger the popup menu when wildoptions=pum
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index be688e3969..3372e8dd31 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -874,6 +874,24 @@ func Test_cmdline_complete_user_cmd()
call feedkeys(":Foo b\\x\<Tab>\<Home>\"\<cr>", 'tx')
call assert_equal('"Foo b\x', @:)
delcommand Foo
+
+ redraw
+ call assert_equal('~', Screenline(&lines - 1))
+ command! FooOne :
+ command! FooTwo :
+
+ set nowildmenu
+ call feedkeys(":Foo\<Tab>\<Home>\"\<cr>", 'tx')
+ call assert_equal('"FooOne', @:)
+ call assert_equal('~', Screenline(&lines - 1))
+
+ call feedkeys(":Foo\<S-Tab>\<Home>\"\<cr>", 'tx')
+ call assert_equal('"FooTwo', @:)
+ call assert_equal('~', Screenline(&lines - 1))
+
+ delcommand FooOne
+ delcommand FooTwo
+ set wildmenu&
endfunc
func Test_complete_user_cmd()
diff --git a/src/version.c b/src/version.c
index 3788596440..289d0e6854 100644
--- a/src/version.c
+++ b/src/version.c
@@ -732,6 +732,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 238,
+/**/
237,
/**/
236,