diff options
author | Denis Vlasenko | 2008-04-01 14:47:57 +0000 |
---|---|---|
committer | Denis Vlasenko | 2008-04-01 14:47:57 +0000 |
commit | 468aea2d8800cc0496383616d82d7c957ae8bc50 (patch) | |
tree | 8a2f3d80dc2440dd007caed4cfa235b3858c9170 /shell | |
parent | 165f5b394fa337e71e08435b51108f4394199b2b (diff) | |
download | busybox-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.in | 11 | ||||
-rw-r--r-- | shell/ash.c | 25 |
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. */ |