From: Mike Frysinger Date: Thu, 15 Oct 2009 07:31:15 +0000 (-0400) Subject: hush: unify handling of builtin applets X-Git-Tag: 1_16_0~385 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ccb1959aa519f45967e7600c6eb11f70211364df;p=oweals%2Fbusybox.git hush: unify handling of builtin applets Saves about 10 bytes for each additional builtin applet. Signed-off-by: Mike Frysinger --- diff --git a/shell/hush.c b/shell/hush.c index 21f3edcac..3a1d6f805 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -6897,24 +6897,24 @@ static int FAST_FUNC builtin_true(char **argv UNUSED_PARAM) return 0; } -static int FAST_FUNC builtin_test(char **argv) +static int FAST_FUNC _builtin_applet(char **argv, int (applet)(int argc, char **argv)) { int argc = 0; while (*argv) { argc++; argv++; } - return test_main(argc, argv - argc); + return applet(argc, argv - argc); +} + +static int FAST_FUNC builtin_test(char **argv) +{ + return _builtin_applet(argv, test_main); } static int FAST_FUNC builtin_echo(char **argv) { - int argc = 0; - while (*argv) { - argc++; - argv++; - } - return echo_main(argc, argv - argc); + return _builtin_applet(argv, echo_main); } static int FAST_FUNC builtin_eval(char **argv)