diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/process.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/win32/process.c b/win32/process.c index fda38318a..f059bee18 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -237,6 +237,13 @@ spawnveq(int mode, const char *path, char *const *argv, char *const *env) | |||
237 | if (*s == '/') | 237 | if (*s == '/') |
238 | *s = '\\'; | 238 | *s = '\\'; |
239 | } | 239 | } |
240 | |||
241 | /* Another special case: spawnve returns ENOEXEC when passed an | ||
242 | * empty batch file. Pretend it worked. */ | ||
243 | if (st.st_size == 0) { | ||
244 | ret = 0; | ||
245 | goto done; | ||
246 | } | ||
240 | } | 247 | } |
241 | 248 | ||
242 | /* | 249 | /* |
@@ -250,6 +257,7 @@ spawnveq(int mode, const char *path, char *const *argv, char *const *env) | |||
250 | 257 | ||
251 | ret = spawnve(mode, new_path ? new_path : path, new_argv, env); | 258 | ret = spawnve(mode, new_path ? new_path : path, new_argv, env); |
252 | 259 | ||
260 | done: | ||
253 | for (i = 0;i < argc;i++) | 261 | for (i = 0;i < argc;i++) |
254 | if (new_argv[i] != argv[i]) | 262 | if (new_argv[i] != argv[i]) |
255 | free(new_argv[i]); | 263 | free(new_argv[i]); |