aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c19
1 files changed, 4 insertions, 15 deletions
diff --git a/shell/ash.c b/shell/ash.c
index b1f8f15d2..44b3569dc 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -158,6 +158,10 @@
158//config: at build time. Like applets, scripts can be run as 158//config: at build time. Like applets, scripts can be run as
159//config: 'busybox SCRIPT ...' or by linking their name to the binary. 159//config: 'busybox SCRIPT ...' or by linking their name to the binary.
160//config: 160//config:
161//config: This also allows applets to be implemented as scripts: place
162//config: the script in 'applets_sh' and a stub C file containing
163//config: configuration in the appropriate subsystem directory.
164//config:
161//config:endif # ash options 165//config:endif # ash options
162 166
163//applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP)) 167//applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
@@ -8016,9 +8020,6 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) const char *cmd, char **argv, c
8016{ 8020{
8017#if ENABLE_FEATURE_SH_STANDALONE 8021#if ENABLE_FEATURE_SH_STANDALONE
8018 if (applet_no >= 0) { 8022 if (applet_no >= 0) {
8019# if NUM_SCRIPTS > 0
8020 if (applet_no < NUM_APPLETS)
8021# endif
8022 if (APPLET_IS_NOEXEC(applet_no)) { 8023 if (APPLET_IS_NOEXEC(applet_no)) {
8023 clearenv(); 8024 clearenv();
8024 while (*envp) 8025 while (*envp)
@@ -8088,9 +8089,6 @@ static void shellexec(char *prog, char **argv, const char *path, int idx)
8088 if (strchr(prog, '/') != NULL 8089 if (strchr(prog, '/') != NULL
8089#if ENABLE_FEATURE_SH_STANDALONE 8090#if ENABLE_FEATURE_SH_STANDALONE
8090 || (applet_no = find_applet_by_name(prog)) >= 0 8091 || (applet_no = find_applet_by_name(prog)) >= 0
8091# if NUM_SCRIPTS > 0
8092 || (applet_no = NUM_APPLETS + find_script_by_name(prog)) >= 0
8093# endif
8094#endif 8092#endif
8095 ) { 8093 ) {
8096 tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) prog, argv, envp); 8094 tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) prog, argv, envp);
@@ -10192,10 +10190,6 @@ evalcommand(union node *cmd, int flags)
10192 */ 10190 */
10193 /* find_command() encodes applet_no as (-2 - applet_no) */ 10191 /* find_command() encodes applet_no as (-2 - applet_no) */
10194 int applet_no = (- cmdentry.u.index - 2); 10192 int applet_no = (- cmdentry.u.index - 2);
10195# if NUM_SCRIPTS > 0
10196 /* Applets are ok, but not embedded scripts */
10197 if (applet_no < NUM_APPLETS)
10198# endif
10199 if (applet_no >= 0 && APPLET_IS_NOFORK(applet_no)) { 10193 if (applet_no >= 0 && APPLET_IS_NOFORK(applet_no)) {
10200 char **sv_environ; 10194 char **sv_environ;
10201 10195
@@ -13378,11 +13372,6 @@ find_command(char *name, struct cmdentry *entry, int act, const char *path)
13378#if ENABLE_FEATURE_SH_STANDALONE 13372#if ENABLE_FEATURE_SH_STANDALONE
13379 { 13373 {
13380 int applet_no = find_applet_by_name(name); 13374 int applet_no = find_applet_by_name(name);
13381# if NUM_SCRIPTS > 0
13382 if (applet_no < 0)
13383 /* embedded script indices are offset by NUM_APPLETS */
13384 applet_no = NUM_APPLETS + find_script_by_name(name);
13385# endif
13386 if (applet_no >= 0) { 13375 if (applet_no >= 0) {
13387 entry->cmdtype = CMDNORMAL; 13376 entry->cmdtype = CMDNORMAL;
13388 entry->u.index = -2 - applet_no; 13377 entry->u.index = -2 - applet_no;