diff options
Diffstat (limited to 'win32')
-rw-r--r-- | win32/process.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/win32/process.c b/win32/process.c index cdae13f38..b0b981feb 100644 --- a/win32/process.c +++ b/win32/process.c | |||
@@ -267,7 +267,14 @@ mingw_execve(const char *cmd, const char *const *argv, const char *const *envp) | |||
267 | 267 | ||
268 | if (ENABLE_FEATURE_PREFER_APPLETS && | 268 | if (ENABLE_FEATURE_PREFER_APPLETS && |
269 | find_applet_by_name(cmd) >= 0) | 269 | find_applet_by_name(cmd) >= 0) |
270 | ret = mingw_spawn_applet(mode, cmd, argv++, envp); | 270 | ret = mingw_spawn_applet(mode, cmd, argv, envp); |
271 | /* | ||
272 | * execve(bb_busybox_exec_path, argv, envp) won't work | ||
273 | * because argv[0] will be replaced to bb_busybox_exec_path | ||
274 | * by MSVC runtime | ||
275 | */ | ||
276 | else if (argv && cmd != argv[0] && cmd == bb_busybox_exec_path) | ||
277 | ret = mingw_spawn_applet(mode, argv[0], argv, envp); | ||
271 | else | 278 | else |
272 | ret = mingw_spawn_interpreter(mode, cmd, argv, envp); | 279 | ret = mingw_spawn_interpreter(mode, cmd, argv, envp); |
273 | if (ret != -1) | 280 | if (ret != -1) |