aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-10-15 03:31:15 -0400
committerMike Frysinger <vapier@gentoo.org>2009-10-15 03:33:31 -0400
commitccb1959aa519f45967e7600c6eb11f70211364df (patch)
treefd3cea3ed7c6b790ef1452a9bae6f82d8787d31c
parentdb67a20595be279e7db9f5f8e27bd94534efb8d4 (diff)
downloadbusybox-w32-ccb1959aa519f45967e7600c6eb11f70211364df.tar.gz
busybox-w32-ccb1959aa519f45967e7600c6eb11f70211364df.tar.bz2
busybox-w32-ccb1959aa519f45967e7600c6eb11f70211364df.zip
hush: unify handling of builtin applets
Saves about 10 bytes for each additional builtin applet. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--shell/hush.c16
1 files changed, 8 insertions, 8 deletions
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)
6897 return 0; 6897 return 0;
6898} 6898}
6899 6899
6900static int FAST_FUNC builtin_test(char **argv) 6900static int FAST_FUNC _builtin_applet(char **argv, int (applet)(int argc, char **argv))
6901{ 6901{
6902 int argc = 0; 6902 int argc = 0;
6903 while (*argv) { 6903 while (*argv) {
6904 argc++; 6904 argc++;
6905 argv++; 6905 argv++;
6906 } 6906 }
6907 return test_main(argc, argv - argc); 6907 return applet(argc, argv - argc);
6908}
6909
6910static int FAST_FUNC builtin_test(char **argv)
6911{
6912 return _builtin_applet(argv, test_main);
6908} 6913}
6909 6914
6910static int FAST_FUNC builtin_echo(char **argv) 6915static int FAST_FUNC builtin_echo(char **argv)
6911{ 6916{
6912 int argc = 0; 6917 return _builtin_applet(argv, echo_main);
6913 while (*argv) {
6914 argc++;
6915 argv++;
6916 }
6917 return echo_main(argc, argv - argc);
6918} 6918}
6919 6919
6920static int FAST_FUNC builtin_eval(char **argv) 6920static int FAST_FUNC builtin_eval(char **argv)