From c0cba4d9b1d8a5218fd46c4ad4659177deebe503 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Sat, 7 Aug 2010 17:07:21 +0200
Subject: [PATCH] Fixed: on MS-Windows completion of shell commands didn't
 work.

---
 runtime/doc/todo.txt | 3 ---
 src/ex_docmd.c       | 5 ++---
 src/structs.h        | 4 ++--
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 98ca232c2c..299ea625b1 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -33,9 +33,6 @@ be worked on, but only if you sponsor Vim development.  See |sponsor|.
 Before release 7.3:
 - Rename vim73 branch to default (hints: Xavier de Gaye, 2010 May 23)
 
-:!cmd completion doesn't work on Windows. (Yue Wu).
-Problem with space in path?
-
 Cursor positioning wrong with 0x200e character. (John Becket, 2010 May 6)
 
 Patch to make more characters work in dialogs. (Yankwei Jia, 2010 Aug 4)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 0d91a0b62c..b338ed5ff4 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3423,17 +3423,16 @@ set_one_cmd_context(xp, buff)
 	    xp->xp_pattern = bow;
 	xp->xp_context = EXPAND_FILES;
 
-#ifndef BACKSLASH_IN_FILENAME
 	/* For a shell command more chars need to be escaped. */
 	if (usefilter || ea.cmdidx == CMD_bang)
 	{
+#ifndef BACKSLASH_IN_FILENAME
 	    xp->xp_shell = TRUE;
-
+#endif
 	    /* When still after the command name expand executables. */
 	    if (xp->xp_pattern == skipwhite(arg))
 		xp->xp_context = EXPAND_SHELLCMD;
 	}
-#endif
 
 	/* Check for environment variable */
 	if (*xp->xp_pattern == '$'
diff --git a/src/structs.h b/src/structs.h
index 31f71d23e3..884d6a9fe5 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -457,8 +457,8 @@ typedef struct expand
 #endif
     int		xp_backslash;		/* one of the XP_BS_ values */
 #ifndef BACKSLASH_IN_FILENAME
-    int		xp_shell;		/* for a shell command more characters
-					   need to be escaped */
+    int		xp_shell;		/* TRUE for a shell command, more
+					   characters need to be escaped */
 #endif
     int		xp_numfiles;		/* number of files found by
 						    file name completion */
-- 
GitLab