summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-02-08 17:40:36 +0000
committerBram Moolenaar <Bram@vim.org>2022-02-08 17:40:36 +0000
commit73a16c22a4703cb9a7becdf459ce62bd894980d7 (patch)
tree4b5f54f6818c002c14bfbf3ce7f4cd1744e2b071
parente3537aec2f8d6470010547af28dcbd83d41461b8 (diff)
downloadvim-git-8.2.4328.tar.gz
patch 8.2.4328: command line complete matches cleard when typing characterv8.2.4328
Problem: Command line complete matches cleard when typing character. (Dominique Pellé) Solution: Only remove a popup menu if there is one.
-rw-r--r--src/ex_getln.c3
-rw-r--r--src/testdir/dumps/Test_wildmenu_pum_30.dump10
-rw-r--r--src/testdir/dumps/Test_wildmenu_pum_31.dump10
-rw-r--r--src/testdir/test_cmdline.vim9
-rw-r--r--src/version.c2
5 files changed, 33 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 5def8a6a2..63f1c5dcb 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1883,7 +1883,8 @@ getcmdline_int(
&& c != Ctrl_L)
{
#ifdef FEAT_WILDMENU
- cmdline_pum_remove();
+ if (cmdline_pum_active())
+ cmdline_pum_remove();
#endif
(void)ExpandOne(&xpc, NULL, NULL, 0, WILD_FREE);
did_wild_list = FALSE;
diff --git a/src/testdir/dumps/Test_wildmenu_pum_30.dump b/src/testdir/dumps/Test_wildmenu_pum_30.dump
new file mode 100644
index 000000000..76e4780ea
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_30.dump
@@ -0,0 +1,10 @@
+|~+0#4040ff13#ffffff0| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|c|n| @71
+|c|n|e|w|e|r| @6|c|n|f|i|l|e| @6|c|n|o|r|e|m|a|p| @40
+|c|n|e|x|t| @7|c|n|o|r|e|a|b@1|r|e|v| @1|c|n|o|r|e|m|e|n|u| @39
+|:|c|n> @71
diff --git a/src/testdir/dumps/Test_wildmenu_pum_31.dump b/src/testdir/dumps/Test_wildmenu_pum_31.dump
new file mode 100644
index 000000000..157f16c89
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_pum_31.dump
@@ -0,0 +1,10 @@
+|~+0#4040ff13#ffffff0| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|c|n| @71
+|c|n|e|w|e|r| @6|c|n|f|i|l|e| @6|c|n|o|r|e|m|a|p| @40
+|c|n|e|x|t| @7|c|n|o|r|e|a|b@1|r|e|v| @1|c|n|o|r|e|m|e|n|u| @39
+|:|c|n|s> @70
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 7faf811db..175647dd1 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -2132,6 +2132,15 @@ func Test_wildmenu_pum()
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_wildmenu_pum_29', {})
+ " Check "list" still works
+ call term_sendkeys(buf, "\<C-U>set wildmode=longest,list\<CR>")
+ call term_sendkeys(buf, ":cn\<Tab>")
+ call TermWait(buf)
+ call VerifyScreenDump(buf, 'Test_wildmenu_pum_30', {})
+ call term_sendkeys(buf, "s")
+ call TermWait(buf)
+ call VerifyScreenDump(buf, 'Test_wildmenu_pum_31', {})
+
call term_sendkeys(buf, "\<C-U>\<CR>")
call StopVimInTerminal(buf)
call delete('Xtest')
diff --git a/src/version.c b/src/version.c
index 9d5fbc2e3..7e61af9ed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4328,
+/**/
4327,
/**/
4326,