From ccb1959aa519f45967e7600c6eb11f70211364df Mon Sep 17 00:00:00 2001
From: Mike Frysinger <vapier@gentoo.org>
Date: Thu, 15 Oct 2009 03:31:15 -0400
Subject: hush: unify handling of builtin applets

Saves about 10 bytes for each additional builtin applet.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
 shell/hush.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

(limited to 'shell')

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)
-- 
cgit v1.2.3-55-g6feb