summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenis Vlasenko2008-04-01 14:47:57 +0000
committerDenis Vlasenko2008-04-01 14:47:57 +0000
commit468aea2d8800cc0496383616d82d7c957ae8bc50 (patch)
tree8a2f3d80dc2440dd007caed4cfa235b3858c9170 /shell
parent165f5b394fa337e71e08435b51108f4394199b2b (diff)
downloadbusybox-468aea2d8800cc0496383616d82d7c957ae8bc50.zip
busybox-468aea2d8800cc0496383616d82d7c957ae8bc50.tar.gz
shells: do not frocibly enable test, echo and kill _applets_,
just build relevant source and use xxx_main functions. build system: add a special case when we have exactly one applet enabled (makes "true", "false", "basename" REALLY tiny). getopt32: do not use stdio. function old new delta getopt32 1385 1412 +27 make_device 1187 1200 +13 basename_main 120 127 +7 tcpudpsvd_main 1922 1926 +4 testcmd 5 - -5 echocmd 5 - -5 fuser_main 1243 1231 -12 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 4/1 up/down: 51/-22) Total: 29 bytes
Diffstat (limited to 'shell')
-rw-r--r--shell/Config.in11
-rw-r--r--shell/ash.c25
2 files changed, 3 insertions, 33 deletions
diff --git a/shell/Config.in b/shell/Config.in
index 5ea071c..40e0217 100644
--- a/shell/Config.in
+++ b/shell/Config.in
@@ -36,7 +36,6 @@ endchoice
config ASH
bool "ash"
default n
- select TEST
help
Tha 'ash' shell adds about 60k in the default configuration and is
the most complete and most pedantically correct shell included with
@@ -111,7 +110,6 @@ config ASH_GETOPTS
config ASH_BUILTIN_ECHO
bool "Builtin version of 'echo'"
default y
- select ECHO
depends on ASH
help
Enable support for echo, builtin to ash.
@@ -119,7 +117,6 @@ config ASH_BUILTIN_ECHO
config ASH_BUILTIN_TEST
bool "Builtin version of 'test'"
default y
- select TEST
depends on ASH
help
Enable support for test, builtin to ash.
@@ -170,10 +167,6 @@ config ASH_EXPAND_PRMT
config HUSH
bool "hush"
default n
- select TRUE
- select FALSE
- select TEST
- select ECHO
help
hush is a very small shell (just 18k) and it has fairly complete
Bourne shell grammar. It even handles all the normal flow control
@@ -240,13 +233,9 @@ config LASH
help
lash is deprecated and will be removed, please migrate to hush.
-
config MSH
bool "msh"
default n
- select TRUE
- select FALSE
- select TEST
help
The minix shell (adds just 30k) is quite complete and handles things
like for/do/done, case/esac and all the things you expect a Bourne
diff --git a/shell/ash.c b/shell/ash.c
index 3651929..360d39b 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -8417,12 +8417,6 @@ returncmd(int argc ATTRIBUTE_UNUSED, char **argv)
static int breakcmd(int, char **);
static int dotcmd(int, char **);
static int evalcmd(int, char **);
-#if ENABLE_ASH_BUILTIN_ECHO
-static int echocmd(int, char **);
-#endif
-#if ENABLE_ASH_BUILTIN_TEST
-static int testcmd(int, char **);
-#endif
static int exitcmd(int, char **);
static int exportcmd(int, char **);
#if ENABLE_ASH_GETOPTS
@@ -8464,6 +8458,9 @@ static int ulimitcmd(int, char **);
* Apart from the above, [[ expr ]] should work as [ expr ]
*/
+#define testcmd test_main
+#define echocmd echo_main
+
/* Keep these in proper order since it is searched via bsearch() */
static const struct builtincmd builtintab[] = {
{ BUILTIN_SPEC_REG ".", dotcmd },
@@ -11506,22 +11503,6 @@ exitcmd(int argc ATTRIBUTE_UNUSED, char **argv)
/* NOTREACHED */
}
-#if ENABLE_ASH_BUILTIN_ECHO
-static int
-echocmd(int argc, char **argv)
-{
- return echo_main(argc, argv);
-}
-#endif
-
-#if ENABLE_ASH_BUILTIN_TEST
-static int
-testcmd(int argc, char **argv)
-{
- return test_main(argc, argv);
-}
-#endif
-
/*
* Read a file containing shell functions.
*/