diff options
author | Ron Yorston <rmy@pobox.com> | 2020-06-01 08:43:17 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2020-06-01 08:43:17 +0100 |
commit | 3c5995713d91df7b6f803b34e43df188646b0676 (patch) | |
tree | 8e00d001cb509aa1f448cebdfb5d12eb9d743c18 /include | |
parent | f81fcc84134ab2f29816dbfaf2e5af9ee62d2691 (diff) | |
download | busybox-w32-3c5995713d91df7b6f803b34e43df188646b0676.tar.gz busybox-w32-3c5995713d91df7b6f803b34e43df188646b0676.tar.bz2 busybox-w32-3c5995713d91df7b6f803b34e43df188646b0676.zip |
ash: simplify spawning during forkshell
spawn_forkshell() uses mingw_spawn_proc() to start the child shell.
mingw_spawn_proc() then calls mingw_spawn_1() which determines
that "sh" is an applet, thus calling mingw_spawn_applet() which
finally calls spawnveq().
Not only is this convoluted it also won't work if PREFER_APPLETS
and SH_STANDALONE aren't enabled.
Simplify matters by adding a new function, mingw_spawn_forkshell(),
which is tailored for just this case.
Diffstat (limited to 'include')
-rw-r--r-- | include/mingw.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/mingw.h b/include/mingw.h index 39d716521..26f0688d7 100644 --- a/include/mingw.h +++ b/include/mingw.h | |||
@@ -477,6 +477,7 @@ DIR *mingw_opendir(const char *path); | |||
477 | pid_t FAST_FUNC mingw_spawn(char **argv); | 477 | pid_t FAST_FUNC mingw_spawn(char **argv); |
478 | pid_t FAST_FUNC mingw_spawn_detach(char **argv); | 478 | pid_t FAST_FUNC mingw_spawn_detach(char **argv); |
479 | intptr_t FAST_FUNC mingw_spawn_proc(const char **argv); | 479 | intptr_t FAST_FUNC mingw_spawn_proc(const char **argv); |
480 | intptr_t FAST_FUNC mingw_spawn_forkshell(const char **argv); | ||
480 | int mingw_execv(const char *cmd, char *const *argv); | 481 | int mingw_execv(const char *cmd, char *const *argv); |
481 | int mingw_execvp(const char *cmd, char *const *argv); | 482 | int mingw_execvp(const char *cmd, char *const *argv); |
482 | int mingw_execve(const char *cmd, char *const *argv, char *const *envp); | 483 | int mingw_execve(const char *cmd, char *const *argv, char *const *envp); |