diff options
Diffstat (limited to 'win32/process.c')
-rw-r--r-- | win32/process.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/win32/process.c b/win32/process.c index 4257fd689..67ce3c100 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -334,16 +334,28 @@ mingw_spawn_1(int mode, const char *cmd, char *const *argv, char *const *envp) | |||
334 | return -1; | 334 | return -1; |
335 | } | 335 | } |
336 | 336 | ||
337 | pid_t FAST_FUNC | 337 | static pid_t |
338 | mingw_spawn(char **argv) | 338 | mingw_spawn_pid(int mode, char **argv) |
339 | { | 339 | { |
340 | intptr_t ret; | 340 | intptr_t ret; |
341 | 341 | ||
342 | ret = mingw_spawn_proc((const char **)argv); | 342 | ret = mingw_spawn_1(mode, argv[0], (char *const *)argv, environ); |
343 | 343 | ||
344 | return ret == -1 ? -1 : GetProcessId((HANDLE)ret); | 344 | return ret == -1 ? -1 : GetProcessId((HANDLE)ret); |
345 | } | 345 | } |
346 | 346 | ||
347 | pid_t FAST_FUNC | ||
348 | mingw_spawn(char **argv) | ||
349 | { | ||
350 | return mingw_spawn_pid(P_NOWAIT, argv); | ||
351 | } | ||
352 | |||
353 | pid_t FAST_FUNC | ||
354 | mingw_spawn_detach(char **argv) | ||
355 | { | ||
356 | return mingw_spawn_pid(P_DETACH, argv); | ||
357 | } | ||
358 | |||
347 | intptr_t FAST_FUNC | 359 | intptr_t FAST_FUNC |
348 | mingw_spawn_proc(const char **argv) | 360 | mingw_spawn_proc(const char **argv) |
349 | { | 361 | { |