[git commit] Rewrite iteration through applet names to save a few bytes
Denys Vlasenko
vda.linux at googlemail.com
Fri Apr 15 20:13:51 UTC 2016
commit: https://git.busybox.net/busybox/commit/?id=2b91958dff0b7bae83cf2c3f2db55bd248fe0956
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
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 <rmy at pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
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 de654f6..b682e6b 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 2ddb2b6..3e62f46 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 5613e1f..13eeab3 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
More information about the busybox-cvs
mailing list