From: Ron Yorston Date: Thu, 1 Nov 2018 11:51:10 +0000 (+0100) Subject: lineedit: autocompletion for embedded scripts X-Git-Tag: 1_30_0~415 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c9e161277eae5d2af39704e220ca5652e69bc428;p=oweals%2Fbusybox.git lineedit: autocompletion for embedded scripts function old new delta complete_cmd_dir_file 811 826 +15 Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- diff --git a/libbb/lineedit.c b/libbb/lineedit.c index aef1911d9..618e7c221 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -812,14 +812,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 ENABLE_FEATURE_SH_STANDALONE && (NUM_APPLETS != 1 || NUM_SCRIPTS > 0) if (type == FIND_EXE_ONLY && !dirbuf) { - const char *p = applet_names; - + const char *p; +# if NUM_APPLETS != 1 && NUM_SCRIPTS > 0 + for (i = 0, p = applet_names; i < 2; i++, p = script_names) +# elif NUM_APPLETS != 1 /* and NUM_SCRIPTS == 0 */ + p = applet_names; +# else /* NUM_APPLETS == 1 && NUM_SCRIPTS > 0 */ + p = script_names; +# endif while (*p) { if (strncmp(pfind, p, pf_len) == 0) add_match(xstrdup(p)); - while (*p++ != '\0') + while (*p++) continue; } }