diff options
-rw-r--r-- | libbb/appletlib.c | 23 | ||||
-rw-r--r-- | libbb/lineedit.c | 4 |
2 files changed, 21 insertions, 6 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 */ diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 2a5d4e7..e5721b0 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -776,7 +776,7 @@ static NOINLINE unsigned complete_cmd_dir_file(const char *command, int type) } pf_len = strlen(pfind); -#if ENABLE_FEATURE_SH_STANDALONE && NUM_APPLETS != 1 +# if ENABLE_FEATURE_SH_STANDALONE && NUM_APPLETS != 1 if (type == FIND_EXE_ONLY && !dirbuf) { const char *p = applet_names; @@ -787,7 +787,7 @@ static NOINLINE unsigned complete_cmd_dir_file(const char *command, int type) continue; } } -#endif +# endif for (i = 0; i < npaths; i++) { DIR *dir; |