patch 8.2.4398: some command completion functions are too long

Problem:    Some command completion functions are too long.
Solution:   Refactor code into separate functions.  Add a few more tests.
            (Yegappan Lakshmanan, closes #9785)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index f9b5b60..a4f0a26 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1856,7 +1856,8 @@
 	    c = Ctrl_P;
 
 #ifdef FEAT_WILDMENU
-	c = wildmenu_translate_key(&ccline, c, &xpc, did_wild_list);
+	if (p_wmnu)
+	    c = wildmenu_translate_key(&ccline, c, &xpc, did_wild_list);
 
 	if (cmdline_pum_active())
 	{
@@ -1900,7 +1901,8 @@
 	}
 
 #ifdef FEAT_WILDMENU
-	c = wildmenu_process_key(&ccline, c, &xpc);
+	if (p_wmnu)
+	    c = wildmenu_process_key(&ccline, c, &xpc);
 #endif
 
 	// CTRL-\ CTRL-N goes to Normal mode, CTRL-\ CTRL-G goes to Insert