# HG changeset patch # User Bram Moolenaar # Date 1661103903 -7200 # Node ID e038b8dd7cd96b891434d75386fc556949dcab1e # Parent f66b7c34e291e4e0aea0e7b9df25030ce8fc0037 patch 9.0.0238: Shift-Tab shows matches on cmdline when 'wildmenu' is off Commit: https://github.com/vim/vim/commit/300175fd7f874be78826a00f5cb60a7ec2f20655 Author: Bram Moolenaar Date: Sun Aug 21 18:38:21 2022 +0100 patch 9.0.0238: Shift-Tab shows matches on cmdline when 'wildmenu' is off Problem: Shift-Tab shows matches on cmdline when 'wildmenu' is off. Solution: Only show matches when 'wildmode' contains "list". (closes https://github.com/vim/vim/issues/10951) diff --git a/src/ex_getln.c b/src/ex_getln.c --- 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 --- 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\\\"\", '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\\\"\", 'tx') + call assert_equal('"FooOne', @:) + call assert_equal('~', Screenline(&lines - 1)) + + call feedkeys(":Foo\\\"\", '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 --- 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,