From 2b91958dff0b7bae83cf2c3f2db55bd248fe0956 Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Fri, 8 Apr 2016 11:57:20 +0100 Subject: Rewrite iteration through applet names to save a few bytes function old new delta run_applet_and_exit 758 755 -3 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3) Total: -3 bytes In standalone shell mode the saving increases to 17 bytes. Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- libbb/appletlib.c | 3 ++- libbb/lineedit.c | 7 +++---- shell/ash.c | 3 ++- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/libbb/appletlib.c b/libbb/appletlib.c index de654f64c..b682e6b85 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -791,7 +791,8 @@ static int busybox_main(char **argv) full_write2_str(a); full_write2_str("\n"); i++; - a += strlen(a) + 1; + while (*a++ != '\0') + continue; } return 0; } diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 2ddb2b6e9..3e62f46b4 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -779,12 +779,11 @@ static NOINLINE unsigned complete_cmd_dir_file(const char *command, int type) if (type == FIND_EXE_ONLY) { const char *p = applet_names; - i = 0; - while (i < NUM_APPLETS) { + while (*p) { if (strncmp(pfind, p, pf_len) == 0) add_match(xstrdup(p)); - p += strlen(p) + 1; - i++; + while (*p++ != '\0') + continue; } } #endif diff --git a/shell/ash.c b/shell/ash.c index 5613e1f33..13eeab34b 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -12597,7 +12597,8 @@ helpcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) out1fmt("\n"); col = 0; } - a += strlen(a) + 1; + while (*a++ != '\0') + continue; } } # endif -- cgit v1.2.3