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;
}
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)