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 b9fbbd1..7a1a7f0 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -760,11 +760,26 @@ static void install_links(const char *busybox UNUSED_PARAM, } # endif -# if ENABLE_BUSYBOX static void run_applet_and_exit(const char *name, char **argv) NORETURN; -/* If we were called as "busybox..." */ -static int busybox_main(char **argv) +# if ENABLE_BUSYBOX +# if ENABLE_FEATURE_SH_STANDALONE && ENABLE_FEATURE_TAB_COMPLETION + /* + * Insert "busybox" into applet table as well. + * This makes standalone shell tab-complete this name too. + * (Otherwise having "busybox" in applet table is not necessary, + * there is other code which routes "busyboxANY_SUFFIX" name + * to busybox_main()). + */ +//usage:#define busybox_trivial_usage NOUSAGE_STR +//usage:#define busybox_full_usage "" +//applet:IF_BUSYBOX(IF_FEATURE_SH_STANDALONE(IF_FEATURE_TAB_COMPLETION(APPLET(busybox, BB_DIR_BIN, BB_SUID_MAYBE)))) +int busybox_main(int argc, char *argv[]) MAIN_EXTERNALLY_VISIBLE; +# else +# define busybox_main(argc,argv) busybox_main(argv) +static +# endif +int busybox_main(int argc UNUSED_PARAM, char **argv) { if (!argv[1]) { /* Called without arguments */ @@ -937,7 +952,7 @@ static NORETURN void run_applet_and_exit(const char *name, char **argv) { # if ENABLE_BUSYBOX if (is_prefixed_with(name, "busybox")) - exit(busybox_main(argv)); + exit(busybox_main(/*unused:*/ 0, argv)); # endif # if NUM_APPLETS > 0 /* find_applet_by_name() search is more expensive, so goes second */ |