diff options
Diffstat (limited to 'libbb/appletlib.c')
-rw-r--r-- | libbb/appletlib.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/libbb/appletlib.c b/libbb/appletlib.c index b9fbbd1f2..7a1a7f005 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c | |||
@@ -760,11 +760,26 @@ static void install_links(const char *busybox UNUSED_PARAM, | |||
760 | } | 760 | } |
761 | # endif | 761 | # endif |
762 | 762 | ||
763 | # if ENABLE_BUSYBOX | ||
764 | static void run_applet_and_exit(const char *name, char **argv) NORETURN; | 763 | static void run_applet_and_exit(const char *name, char **argv) NORETURN; |
765 | 764 | ||
766 | /* If we were called as "busybox..." */ | 765 | # if ENABLE_BUSYBOX |
767 | static int busybox_main(char **argv) | 766 | # if ENABLE_FEATURE_SH_STANDALONE && ENABLE_FEATURE_TAB_COMPLETION |
767 | /* | ||
768 | * Insert "busybox" into applet table as well. | ||
769 | * This makes standalone shell tab-complete this name too. | ||
770 | * (Otherwise having "busybox" in applet table is not necessary, | ||
771 | * there is other code which routes "busyboxANY_SUFFIX" name | ||
772 | * to busybox_main()). | ||
773 | */ | ||
774 | //usage:#define busybox_trivial_usage NOUSAGE_STR | ||
775 | //usage:#define busybox_full_usage "" | ||
776 | //applet:IF_BUSYBOX(IF_FEATURE_SH_STANDALONE(IF_FEATURE_TAB_COMPLETION(APPLET(busybox, BB_DIR_BIN, BB_SUID_MAYBE)))) | ||
777 | int busybox_main(int argc, char *argv[]) MAIN_EXTERNALLY_VISIBLE; | ||
778 | # else | ||
779 | # define busybox_main(argc,argv) busybox_main(argv) | ||
780 | static | ||
781 | # endif | ||
782 | int busybox_main(int argc UNUSED_PARAM, char **argv) | ||
768 | { | 783 | { |
769 | if (!argv[1]) { | 784 | if (!argv[1]) { |
770 | /* Called without arguments */ | 785 | /* Called without arguments */ |
@@ -937,7 +952,7 @@ static NORETURN void run_applet_and_exit(const char *name, char **argv) | |||
937 | { | 952 | { |
938 | # if ENABLE_BUSYBOX | 953 | # if ENABLE_BUSYBOX |
939 | if (is_prefixed_with(name, "busybox")) | 954 | if (is_prefixed_with(name, "busybox")) |
940 | exit(busybox_main(argv)); | 955 | exit(busybox_main(/*unused:*/ 0, argv)); |
941 | # endif | 956 | # endif |
942 | # if NUM_APPLETS > 0 | 957 | # if NUM_APPLETS > 0 |
943 | /* find_applet_by_name() search is more expensive, so goes second */ | 958 | /* find_applet_by_name() search is more expensive, so goes second */ |