patch 8.0.1482: using feedkeys() does not work to test completion

Problem:    Using feedkeys() does not work to test Insert mode completion.
            (Lifepillar)
Solution:   Do not check for typed keys when executing :normal or feedkeys().
            Fix thesaurus completion not working when 'complete' is empty.
diff --git a/src/edit.c b/src/edit.c
index 863f1cb..fa1d84b 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1454,7 +1454,8 @@
 	    /* if 'complete' is empty then plain ^P is no longer special,
 	     * but it is under other ^X modes */
 	    if (*curbuf->b_p_cpt == NUL
-		    && ctrl_x_mode != 0
+		    && (ctrl_x_mode == CTRL_X_NORMAL
+			|| ctrl_x_mode == CTRL_X_WHOLE_LINE)
 		    && !(compl_cont_status & CONT_LOCAL))
 		goto normalchar;
 
@@ -1568,8 +1569,8 @@
 	/* If typed something may trigger CursorHoldI again. */
 	if (c != K_CURSORHOLD
 # ifdef FEAT_COMPL_FUNC
-	    /* but not in CTRL-X mode, a script can't restore the state */
-	    && ctrl_x_mode == 0
+		/* but not in CTRL-X mode, a script can't restore the state */
+		&& ctrl_x_mode == CTRL_X_NORMAL
 # endif
 	       )
 	    did_cursorhold = FALSE;
@@ -1582,7 +1583,7 @@
 #ifdef FEAT_CINDENT
 	if (can_cindent && cindent_on()
 # ifdef FEAT_INS_EXPAND
-		&& ctrl_x_mode == 0
+		&& ctrl_x_mode == CTRL_X_NORMAL
 # endif
 	   )
 	{
@@ -5020,12 +5021,12 @@
 ins_compl_check_keys(int frequency, int in_compl_func)
 {
     static int	count = 0;
+    int		c;
 
-    int	    c;
-
-    /* Don't check when reading keys from a script.  That would break the test
-     * scripts */
-    if (using_script())
+    /* Don't check when reading keys from a script, :normal or feedkeys().
+     * That would break the test scripts.  But do check for keys when called
+     * from complete_check(). */
+    if (!in_compl_func && (using_script() || ex_normal_busy))
 	return;
 
     /* Only do this at regular intervals */