diff options
-rw-r--r-- | shell/ash.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/shell/ash.c b/shell/ash.c index 878c76da4..52feff422 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -7767,15 +7767,6 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char ** | |||
7767 | } | 7767 | } |
7768 | } | 7768 | } |
7769 | 7769 | ||
7770 | #if ENABLE_PLATFORM_MINGW32 && ENABLE_FEATURE_SH_STANDALONE | ||
7771 | /* check if command and executable are both busybox */ | ||
7772 | static int busybox_cmd_and_exe(const char *name) | ||
7773 | { | ||
7774 | return strcmp(name, "busybox") == 0 && | ||
7775 | strcmp(bb_basename(bb_busybox_exec_path), "busybox.exe") == 0; | ||
7776 | } | ||
7777 | #endif | ||
7778 | |||
7779 | /* | 7770 | /* |
7780 | * Exec a program. Never returns. If you change this routine, you may | 7771 | * Exec a program. Never returns. If you change this routine, you may |
7781 | * have to change the find_command routine as well. | 7772 | * have to change the find_command routine as well. |
@@ -7807,8 +7798,9 @@ shellexec(char **argv, const char *path, int idx) | |||
7807 | } | 7798 | } |
7808 | e = errno; | 7799 | e = errno; |
7809 | #if ENABLE_PLATFORM_MINGW32 && ENABLE_FEATURE_SH_STANDALONE | 7800 | #if ENABLE_PLATFORM_MINGW32 && ENABLE_FEATURE_SH_STANDALONE |
7810 | } else if (busybox_cmd_and_exe(argv[0])) { | 7801 | } else if (strcmp(argv[0], "busybox") == 0) { |
7811 | tryexec(-1, bb_busybox_exec_path, argv, envp); | 7802 | tryexec(-1, bb_busybox_exec_path, argv, envp); |
7803 | e = errno; | ||
7812 | #endif | 7804 | #endif |
7813 | } else { | 7805 | } else { |
7814 | try_PATH: | 7806 | try_PATH: |
@@ -12778,14 +12770,6 @@ find_command(char *name, struct cmdentry *entry, int act, const char *path) | |||
12778 | return; | 12770 | return; |
12779 | } | 12771 | } |
12780 | 12772 | ||
12781 | #if ENABLE_PLATFORM_MINGW32 && ENABLE_FEATURE_SH_STANDALONE | ||
12782 | if (busybox_cmd_and_exe(name)) { | ||
12783 | entry->u.index = -1; | ||
12784 | entry->cmdtype = CMDNORMAL; | ||
12785 | return; | ||
12786 | } | ||
12787 | #endif | ||
12788 | |||
12789 | /* #if ENABLE_FEATURE_SH_STANDALONE... moved after builtin check */ | 12773 | /* #if ENABLE_FEATURE_SH_STANDALONE... moved after builtin check */ |
12790 | 12774 | ||
12791 | updatetbl = (path == pathval()); | 12775 | updatetbl = (path == pathval()); |
@@ -12839,7 +12823,9 @@ find_command(char *name, struct cmdentry *entry, int act, const char *path) | |||
12839 | #if ENABLE_FEATURE_SH_STANDALONE | 12823 | #if ENABLE_FEATURE_SH_STANDALONE |
12840 | { | 12824 | { |
12841 | int applet_no = find_applet_by_name(name); | 12825 | int applet_no = find_applet_by_name(name); |
12842 | if (applet_no >= 0) { | 12826 | if (applet_no >= 0 || |
12827 | /* requires find_applet_by_name to return -1 on no match */ | ||
12828 | (ENABLE_PLATFORM_MINGW32 && strcmp(name, "busybox") == 0)) { | ||
12843 | entry->cmdtype = CMDNORMAL; | 12829 | entry->cmdtype = CMDNORMAL; |
12844 | entry->u.index = -2 - applet_no; | 12830 | entry->u.index = -2 - applet_no; |
12845 | return; | 12831 | return; |