aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/appletlib.c38
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
757static void run_applet_and_exit(const char *name, char **argv) NORETURN; 758static 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
760static int find_script_by_name(const char *name) 762static 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: */
1033int scripted_main(int argc UNUSED_PARAM, char **argv) MAIN_EXTERNALLY_VISIBLE;
1034int 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}
1046char* FAST_FUNC
1047get_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