summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/spawn.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/spawn.cc')
-rw-r--r--winsup/cygwin/spawn.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 097ecedc9..211c15c04 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -483,7 +483,12 @@ spawn_guts (HANDLE hToken, const char * prog_arg, const char *const *argv,
for (; (p = strpbrk (a, "\"\\")); a = ++p)
{
one_line.add (a, p - a);
- if ((*p == '\\' && p[1] == '"') || *p == '"')
+ if (*p == '\\' && p[1] == '\\')
+ {
+ one_line.add ("\\\\\\", 3);
+ p++;
+ }
+ else if ((*p == '\\' && p[1] == '"') || *p == '"')
one_line.add ("\\", 1);
one_line.add (p, 1);
}