patch 9.1.1200: cmdline pum not cleared for input() completion

Problem:  Cmdline pum not cleared for input() completion.
Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(),
          like what is done in wildmenu_cleanup() (zeertzjq).

fixes: #16874
closes: #16876

Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_1.dump b/src/testdir/dumps/Test_wildmenu_input_func_1.dump
new file mode 100644
index 0000000..fc76cb0
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_1.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|C+0#0000000&|o|m@1|a|n|d|?| > @65
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_2.dump b/src/testdir/dumps/Test_wildmenu_input_func_2.dump
new file mode 100644
index 0000000..6bbc22d
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_2.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|e+0#0000001#ffff4012|c|h|o| +3#0000000#ffffff0@1|e|c|h|o|c|o|n|s|o|l|e| @1|e|c|h|o|e|r@1| @1|e|c|h|o|h|l| @1|e|c|h|o|m|s|g| @1|e|c|h|o|n| @1|e|c|h|o|w|i|n|d|o|w| @12
+|C+0&&|o|m@1|a|n|d|?| |e|c|h|o> @61
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_3.dump b/src/testdir/dumps/Test_wildmenu_input_func_3.dump
new file mode 100644
index 0000000..65343fc
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_3.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|C+0#0000000&|o|m@1|a|n|d|?| |e|c|h|o| > @60
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_4.dump b/src/testdir/dumps/Test_wildmenu_input_func_4.dump
new file mode 100644
index 0000000..2a26168
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_4.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|b+0#0000001#ffff4012|u|f|n|a|m|e|(| +3#0000000#ffffff0@1|b|u|f|n|r|(| @58
+|C+0&&|o|m@1|a|n|d|?| |e|c|h|o| |b|u|f|n|a|m|e|(> @52
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_5.dump b/src/testdir/dumps/Test_wildmenu_input_func_5.dump
new file mode 100644
index 0000000..fc76cb0
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_5.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|C+0#0000000&|o|m@1|a|n|d|?| > @65
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_6.dump b/src/testdir/dumps/Test_wildmenu_input_func_6.dump
new file mode 100644
index 0000000..705c365
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_6.dump
@@ -0,0 +1,8 @@
+| +0#0000001#e0e0e08|e|c|h|o| @10| +0#0000000#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|c|o|n|s|o|l|e| @3| +0#4040ff13#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|e|r@1| @7| +0#4040ff13#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|h|l| @8| +0#4040ff13#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|m|s|g| @7| +0#4040ff13#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|n| @9| +0#4040ff13#ffffff0@58
+| +0#0000001#ffd7ff255|e|c|h|o|w|i|n|d|o|w| @4| +0#4040ff13#ffffff0@58
+|C+0#0000000&|o|m@1|a|n|d|?| |e|c|h|o> @61
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_7.dump b/src/testdir/dumps/Test_wildmenu_input_func_7.dump
new file mode 100644
index 0000000..65343fc
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_7.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @73
+|C+0#0000000&|o|m@1|a|n|d|?| |e|c|h|o| > @60
diff --git a/src/testdir/dumps/Test_wildmenu_input_func_8.dump b/src/testdir/dumps/Test_wildmenu_input_func_8.dump
new file mode 100644
index 0000000..0ae6179
--- /dev/null
+++ b/src/testdir/dumps/Test_wildmenu_input_func_8.dump
@@ -0,0 +1,8 @@
+| +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|~| @3| +0#0000001#e0e0e08|b|u|f|n|a|m|e|(| @6| +0#4040ff13#ffffff0@53
+|~| @3| +0#0000001#ffd7ff255|b|u|f|n|r|(| @8| +0#4040ff13#ffffff0@53
+|C+0#0000000&|o|m@1|a|n|d|?| |e|c|h|o| |b|u|f|n|a|m|e|(> @52
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 166c9da..57b57cb 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -211,6 +211,37 @@
   call StopVimInTerminal(buf)
 endfunc
 
+func Test_wildmenu_with_input_func()
+  CheckScreendump
+
+  let buf = RunVimInTerminal('-c "set wildmenu"', {'rows': 8})
+
+  call term_sendkeys(buf, ":call input('Command? ', '', 'command')\<CR>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_1', {})
+  call term_sendkeys(buf, "ech\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_2', {})
+  call term_sendkeys(buf, "\<Space>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_3', {})
+  call term_sendkeys(buf, "bufn\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_4', {})
+  call term_sendkeys(buf, "\<CR>")
+
+  call term_sendkeys(buf, ":set wildoptions+=pum\<CR>")
+
+  call term_sendkeys(buf, ":call input('Command? ', '', 'command')\<CR>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_5', {})
+  call term_sendkeys(buf, "ech\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_6', {})
+  call term_sendkeys(buf, "\<Space>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_7', {})
+  call term_sendkeys(buf, "bufn\<Tab>")
+  call VerifyScreenDump(buf, 'Test_wildmenu_input_func_8', {})
+  call term_sendkeys(buf, "\<CR>")
+
+  " clean up
+  call StopVimInTerminal(buf)
+endfunc
+
 func Test_redraw_in_autocmd()
   CheckScreendump