diff --git a/libbb/lineedit.c b/libbb/lineedit.c index a83e07c0c..2ddb2b6e9 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -47,7 +47,8 @@ * It stems from simplistic "cmdedit_y = cmdedit_prmt_len / cmdedit_termw" * calculation of how many lines the prompt takes. */ -#include "libbb.h" +#include "busybox.h" +#include "NUM_APPLETS.h" #include "unicode.h" #ifndef _POSIX_VDISABLE # define _POSIX_VDISABLE '\0' @@ -774,6 +775,20 @@ 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 (type == FIND_EXE_ONLY) { + const char *p = applet_names; + + i = 0; + while (i < NUM_APPLETS) { + if (strncmp(pfind, p, pf_len) == 0) + add_match(xstrdup(p)); + p += strlen(p) + 1; + i++; + } + } +#endif + for (i = 0; i < npaths; i++) { DIR *dir; struct dirent *next;