From 265062d59dd46065ad34519f04615fb2cecefe8a Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Tue, 10 Jan 2017 15:13:30 +0100
Subject: shells: make hush test optional, rename ASH_BUILTIN_foo -> ASH_foo

This makes hash and ash more symmetrical wrt config menu and config
options.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 shell/ash.c  | 26 +++++++++++++-------------
 shell/hush.c | 16 +++++++++++++++-
 2 files changed, 28 insertions(+), 14 deletions(-)

(limited to 'shell')

diff --git a/shell/ash.c b/shell/ash.c
index 20ed9652c..7c1204a47 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -99,17 +99,17 @@
 //config:	  are checked for mtime changes, and "you have mail"
 //config:	  message is printed if change is detected.
 //config:
-//config:config ASH_BUILTIN_ECHO
+//config:config ASH_ECHO
 //config:	bool "echo builtin"
 //config:	default y
 //config:	depends on ASH || SH_IS_ASH || BASH_IS_ASH
 //config:
-//config:config ASH_BUILTIN_PRINTF
+//config:config ASH_PRINTF
 //config:	bool "printf builtin"
 //config:	default y
 //config:	depends on ASH || SH_IS_ASH || BASH_IS_ASH
 //config:
-//config:config ASH_BUILTIN_TEST
+//config:config ASH_TEST
 //config:	bool "test builtin"
 //config:	default y
 //config:	depends on ASH || SH_IS_ASH || BASH_IS_ASH
@@ -9292,13 +9292,13 @@ static int ulimitcmd(int, char **) FAST_FUNC;
 #define BUILTIN_SPEC_REG_ASSG   "7"
 
 /* Stubs for calling non-FAST_FUNC's */
-#if ENABLE_ASH_BUILTIN_ECHO
+#if ENABLE_ASH_ECHO
 static int FAST_FUNC echocmd(int argc, char **argv)   { return echo_main(argc, argv); }
 #endif
-#if ENABLE_ASH_BUILTIN_PRINTF
+#if ENABLE_ASH_PRINTF
 static int FAST_FUNC printfcmd(int argc, char **argv) { return printf_main(argc, argv); }
 #endif
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
 static int FAST_FUNC testcmd(int argc, char **argv)   { return test_main(argc, argv); }
 #endif
 
@@ -9306,7 +9306,7 @@ static int FAST_FUNC testcmd(int argc, char **argv)   { return test_main(argc, a
 static const struct builtincmd builtintab[] = {
 	{ BUILTIN_SPEC_REG      "."       , dotcmd     },
 	{ BUILTIN_SPEC_REG      ":"       , truecmd    },
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
 	{ BUILTIN_REGULAR       "["       , testcmd    },
 # if ENABLE_ASH_BASH_COMPAT
 	{ BUILTIN_REGULAR       "[["      , testcmd    },
@@ -9325,7 +9325,7 @@ static const struct builtincmd builtintab[] = {
 	{ BUILTIN_REGULAR       "command" , commandcmd },
 #endif
 	{ BUILTIN_SPEC_REG      "continue", breakcmd   },
-#if ENABLE_ASH_BUILTIN_ECHO
+#if ENABLE_ASH_ECHO
 	{ BUILTIN_REGULAR       "echo"    , echocmd    },
 #endif
 	{ BUILTIN_SPEC_REG      "eval"    , NULL       }, /*evalcmd() has a differing prototype*/
@@ -9354,7 +9354,7 @@ static const struct builtincmd builtintab[] = {
 	{ BUILTIN_NOSPEC        "let"     , letcmd     },
 #endif
 	{ BUILTIN_ASSIGN        "local"   , localcmd   },
-#if ENABLE_ASH_BUILTIN_PRINTF
+#if ENABLE_ASH_PRINTF
 	{ BUILTIN_REGULAR       "printf"  , printfcmd  },
 #endif
 	{ BUILTIN_NOSPEC        "pwd"     , pwdcmd     },
@@ -9366,7 +9366,7 @@ static const struct builtincmd builtintab[] = {
 #if ENABLE_ASH_BASH_COMPAT
 	{ BUILTIN_SPEC_REG      "source"  , dotcmd     },
 #endif
-#if ENABLE_ASH_BUILTIN_TEST
+#if ENABLE_ASH_TEST
 	{ BUILTIN_REGULAR       "test"    , testcmd    },
 #endif
 	{ BUILTIN_SPEC_REG      "times"   , timescmd   },
@@ -9385,15 +9385,15 @@ static const struct builtincmd builtintab[] = {
 /* Should match the above table! */
 #define COMMANDCMD (builtintab + \
 	/* . : */	2 + \
-	/* [ */		1 * ENABLE_ASH_BUILTIN_TEST + \
-	/* [[ */	1 * ENABLE_ASH_BUILTIN_TEST * ENABLE_ASH_BASH_COMPAT + \
+	/* [ */		1 * ENABLE_ASH_TEST + \
+	/* [[ */	1 * ENABLE_ASH_TEST * ENABLE_ASH_BASH_COMPAT + \
 	/* alias */	1 * ENABLE_ASH_ALIAS + \
 	/* bg */	1 * ENABLE_ASH_JOB_CONTROL + \
 	/* break cd cddir  */	3)
 #define EVALCMD (COMMANDCMD + \
 	/* command */	1 * ENABLE_ASH_CMDCMD + \
 	/* continue */	1 + \
-	/* echo */	1 * ENABLE_ASH_BUILTIN_ECHO + \
+	/* echo */	1 * ENABLE_ASH_ECHO + \
 	0)
 #define EXECCMD (EVALCMD + \
 	/* eval */	1)
diff --git a/shell/hush.c b/shell/hush.c
index 9e508fc6d..c0325cf5e 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -197,6 +197,11 @@
 //config:	default y
 //config:	depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
 //config:
+//config:config HUSH_TEST
+//config:	bool "test builtin"
+//config:	default y
+//config:	depends on HUSH || SH_IS_HUSH || BASH_IS_HUSH
+//config:
 //config:config HUSH_HELP
 //config:	bool "help builtin"
 //config:	default y
@@ -942,7 +947,9 @@ static int builtin_set(char **argv) FAST_FUNC;
 #endif
 static int builtin_shift(char **argv) FAST_FUNC;
 static int builtin_source(char **argv) FAST_FUNC;
+#if ENABLE_HUSH_TEST
 static int builtin_test(char **argv) FAST_FUNC;
+#endif
 #if ENABLE_HUSH_TRAP
 static int builtin_trap(char **argv) FAST_FUNC;
 #endif
@@ -1061,7 +1068,9 @@ static const struct built_in_command bltins1[] = {
 #endif
 };
 static const struct built_in_command bltins2[] = {
+#if ENABLE_HUSH_TEST
 	BLTIN("["        , builtin_test    , NULL),
+#endif
 #if ENABLE_HUSH_ECHO
 	BLTIN("echo"     , builtin_echo    , NULL),
 #endif
@@ -1069,7 +1078,9 @@ static const struct built_in_command bltins2[] = {
 	BLTIN("printf"   , builtin_printf  , NULL),
 #endif
 	BLTIN("pwd"      , builtin_pwd     , NULL),
+#if ENABLE_HUSH_TEST
 	BLTIN("test"     , builtin_test    , NULL),
+#endif
 };
 
 
@@ -8791,6 +8802,7 @@ static int FAST_FUNC builtin_true(char **argv UNUSED_PARAM)
 	return 0;
 }
 
+#if ENABLE_HUSH_TEST || ENABLE_HUSH_ECHO || ENABLE_HUSH_PRINTF || ENABLE_HUSH_KILL
 static int run_applet_main(char **argv, int (*applet_main_func)(int argc, char **argv))
 {
 	int argc = 0;
@@ -8800,11 +8812,13 @@ static int run_applet_main(char **argv, int (*applet_main_func)(int argc, char *
 	}
 	return applet_main_func(argc, argv - argc);
 }
-
+#endif
+#if ENABLE_HUSH_TEST
 static int FAST_FUNC builtin_test(char **argv)
 {
 	return run_applet_main(argv, test_main);
 }
+#endif
 #if ENABLE_HUSH_ECHO
 static int FAST_FUNC builtin_echo(char **argv)
 {
-- 
cgit v1.2.3-55-g6feb