patch 9.0.1636: expanding a pattern interferes with cmdline completion

Problem:    Expanding a pattern interferes with command line completion.
Solution:   Set the file index only when appropriate. (closes #12519)
diff --git a/src/cmdexpand.c b/src/cmdexpand.c
index 4661538..0969106 100644
--- a/src/cmdexpand.c
+++ b/src/cmdexpand.c
@@ -957,7 +957,7 @@
     int		mode)
 {
     char_u	*ss = NULL;
-    static int	findex;
+    static int	findex;			// TODO: Move into expand_T
     static char_u *orig_save = NULL;	// kept value of orig
     int		orig_saved = FALSE;
     int		i;
@@ -971,8 +971,9 @@
     if (mode == WILD_CANCEL)
 	ss = vim_strsave(orig_save ? orig_save : (char_u *)"");
     else if (mode == WILD_APPLY)
-	ss = vim_strsave(findex == -1 ? (orig_save ?
-		    orig_save : (char_u *)"") : xp->xp_files[findex]);
+	ss = vim_strsave(findex == -1
+			    ? (orig_save ? orig_save : (char_u *)"")
+			    : xp->xp_files[findex]);
 
     // free old names
     if (xp->xp_numfiles != -1 && mode != WILD_ALL && mode != WILD_LONGEST)
@@ -985,7 +986,9 @@
 	if (compl_match_array != NULL)
 	    cmdline_pum_remove();
     }
-    findex = 0;
+    // TODO: Remove condition if "findex" is part of expand_T ?
+    if (mode != WILD_EXPAND_FREE && mode != WILD_ALL && mode != WILD_ALL_KEEP)
+	findex = 0;
 
     if (mode == WILD_FREE)	// only release file name
 	return NULL;