diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/appletlib.c | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index f842e73cc..a515c3fe3 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
@@ -754,7 +754,9 @@ static void install_links(const char *busybox UNUSED_PARAM, | |||
754 | } | 754 | } |
755 | # endif | 755 | # endif |
756 | 756 | ||
757 | # if ENABLE_BUSYBOX || NUM_APPLETS > 0 | ||
757 | static void run_applet_and_exit(const char *name, char **argv) NORETURN; | 758 | static void run_applet_and_exit(const char *name, char **argv) NORETURN; |
759 | #endif | ||
758 | 760 | ||
759 | # if NUM_SCRIPTS > 0 | 761 | # if NUM_SCRIPTS > 0 |
760 | static int find_script_by_name(const char *name) | 762 | static int find_script_by_name(const char *name) |
@@ -775,13 +777,13 @@ int scripted_main(int argc UNUSED_PARAM, char **argv) | |||
775 | { | 777 | { |
776 | int script = find_script_by_name(applet_name); | 778 | int script = find_script_by_name(applet_name); |
777 | if (script >= 0) | 779 | if (script >= 0) |
778 | #if ENABLE_ASH || ENABLE_SH_IS_ASH || ENABLE_BASH_IS_ASH | 780 | # if ENABLE_SHELL_ASH |
779 | exit(ash_main(-script - 1, argv)); | 781 | exit(ash_main(-script - 1, argv)); |
780 | #elif ENABLE_HUSH || ENABLE_SH_IS_HUSH || ENABLE_BASH_IS_HUSH | 782 | # elif ENABLE_SHELL_HUSH |
781 | exit(hush_main(-script - 1, argv)); | 783 | exit(hush_main(-script - 1, argv)); |
782 | #else | 784 | # else |
783 | return 1; | 785 | return 1; |
784 | #endif | 786 | # endif |
785 | return 0; | 787 | return 0; |
786 | } | 788 | } |
787 | 789 | ||
@@ -1024,7 +1026,33 @@ static NORETURN void run_applet_and_exit(const char *name, char **argv) | |||
1024 | } | 1026 | } |
1025 | # endif | 1027 | # endif |
1026 | 1028 | ||
1027 | #endif /* !defined(SINGLE_APPLET_MAIN) */ | 1029 | #else /* defined(SINGLE_APPLET_MAIN) */ |
1030 | |||
1031 | # if NUM_SCRIPTS > 0 | ||
1032 | /* if SINGLE_APPLET_MAIN, these two functions are simpler: */ | ||
1033 | int scripted_main(int argc UNUSED_PARAM, char **argv) MAIN_EXTERNALLY_VISIBLE; | ||
1034 | int scripted_main(int argc UNUSED_PARAM, char **argv) | ||
1035 | { | ||
1036 | # if ENABLE_SHELL_ASH | ||
1037 | int script = 0; | ||
1038 | exit(ash_main(-script - 1, argv)); | ||
1039 | # elif ENABLE_SHELL_HUSH | ||
1040 | int script = 0; | ||
1041 | exit(hush_main(-script - 1, argv)); | ||
1042 | # else | ||
1043 | return 1; | ||
1044 | # endif | ||
1045 | } | ||
1046 | char* FAST_FUNC | ||
1047 | get_script_content(unsigned n UNUSED_PARAM) | ||
1048 | { | ||
1049 | char *t = unpack_bz2_data(packed_scripts, sizeof(packed_scripts), | ||
1050 | UNPACKED_SCRIPTS_LENGTH); | ||
1051 | return t; | ||
1052 | } | ||
1053 | # endif /* NUM_SCRIPTS > 0 */ | ||
1054 | |||
1055 | #endif /* defined(SINGLE_APPLET_MAIN) */ | ||
1028 | 1056 | ||
1029 | 1057 | ||
1030 | #if ENABLE_BUILD_LIBBUSYBOX | 1058 | #if ENABLE_BUILD_LIBBUSYBOX |