patch 8.1.2361: MS-Windows: test failures related to VIMDLL

Problem:    MS-Windows: test failures related to VIMDLL.
Solution:   Adjust code and tests. (Ken Takata, closes #5283)
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 5615adc..9576668 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -1068,6 +1068,9 @@
     pos_T	orig_start = curbuf->b_op_start;
     pos_T	orig_end = curbuf->b_op_end;
     int		save_lockmarks = cmdmod.lockmarks;
+#ifdef FEAT_FILTERPIPE
+    int		stmp = p_stmp;
+#endif
 
     if (*cmd == NUL)	    /* no filter command */
 	return;
@@ -1100,20 +1103,25 @@
 	shell_flags |= SHELL_DOOUT;
 
 #ifdef FEAT_FILTERPIPE
-    if (!do_in && do_out && !p_stmp)
+# ifdef VIMDLL
+    if (!gui.in_use && !gui.starting)
+	stmp = 1;   // Console mode doesn't support filterpipe.
+# endif
+
+    if (!do_in && do_out && !stmp)
     {
 	/* Use a pipe to fetch stdout of the command, do not use a temp file. */
 	shell_flags |= SHELL_READ;
 	curwin->w_cursor.lnum = line2;
     }
-    else if (do_in && !do_out && !p_stmp)
+    else if (do_in && !do_out && !stmp)
     {
 	/* Use a pipe to write stdin of the command, do not use a temp file. */
 	shell_flags |= SHELL_WRITE;
 	curbuf->b_op_start.lnum = line1;
 	curbuf->b_op_end.lnum = line2;
     }
-    else if (do_in && do_out && !p_stmp)
+    else if (do_in && do_out && !stmp)
     {
 	/* Use a pipe to write stdin and fetch stdout of the command, do not
 	 * use a temp file. */