hush: unify handling of builtin applets

Saves about 10 bytes for each additional builtin applet.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
Mike Frysinger 2009-10-15 03:31:15 -04:00
parent db67a20595
commit ccb1959aa5

View File

@ -6897,24 +6897,24 @@ static int FAST_FUNC builtin_true(char **argv UNUSED_PARAM)
return 0; 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; int argc = 0;
while (*argv) { while (*argv) {
argc++; argc++;
argv++; 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) static int FAST_FUNC builtin_echo(char **argv)
{ {
int argc = 0; return _builtin_applet(argv, echo_main);
while (*argv) {
argc++;
argv++;
}
return echo_main(argc, argv - argc);
} }
static int FAST_FUNC builtin_eval(char **argv) static int FAST_FUNC builtin_eval(char **argv)