diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-12 23:29:57 +0100 |
commit | 03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c (patch) | |
tree | b134cbc7f0afbf76c54847624310e6a1d2774f83 /shell/ash.c | |
parent | 045f4ad92c07434625e168bc8c37aa0e89f6e58e (diff) | |
download | busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.gz busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.tar.bz2 busybox-w32-03dad22f8a1b8b1410fdcccf69af1bb5cce4de7c.zip |
hush: use ash's read builtin
function old new delta
shell_builtin_read - 1000 +1000
set_local_var_from_halves - 24 +24
setvar2 - 7 +7
...
popstring 140 134 -6
ash_main 1375 1368 -7
setvar 184 174 -10
arith_set_local_var 36 - -36
builtin_read 1096 185 -911
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 5/23 up/down: 1038/-1007) Total: 31 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell/ash.c')
-rw-r--r-- | shell/ash.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/shell/ash.c b/shell/ash.c index c7deffd08..31dc59253 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -1884,7 +1884,7 @@ getoptsreset(const char *value) | |||
1884 | * Return of a legal variable name (a letter or underscore followed by zero or | 1884 | * Return of a legal variable name (a letter or underscore followed by zero or |
1885 | * more letters, underscores, and digits). | 1885 | * more letters, underscores, and digits). |
1886 | */ | 1886 | */ |
1887 | static char * | 1887 | static char* FAST_FUNC |
1888 | endofname(const char *name) | 1888 | endofname(const char *name) |
1889 | { | 1889 | { |
1890 | char *p; | 1890 | char *p; |
@@ -1991,7 +1991,7 @@ findvar(struct var **vpp, const char *name) | |||
1991 | /* | 1991 | /* |
1992 | * Find the value of a variable. Returns NULL if not set. | 1992 | * Find the value of a variable. Returns NULL if not set. |
1993 | */ | 1993 | */ |
1994 | static const char * | 1994 | static const char* FAST_FUNC |
1995 | lookupvar(const char *name) | 1995 | lookupvar(const char *name) |
1996 | { | 1996 | { |
1997 | struct var *v; | 1997 | struct var *v; |
@@ -2114,6 +2114,12 @@ setvar(const char *name, const char *val, int flags) | |||
2114 | INT_ON; | 2114 | INT_ON; |
2115 | } | 2115 | } |
2116 | 2116 | ||
2117 | static void FAST_FUNC | ||
2118 | setvar2(const char *name, const char *val) | ||
2119 | { | ||
2120 | setvar(name, val, 0); | ||
2121 | } | ||
2122 | |||
2117 | #if ENABLE_ASH_GETOPTS | 2123 | #if ENABLE_ASH_GETOPTS |
2118 | /* | 2124 | /* |
2119 | * Safe version of setvar, returns 1 on success 0 on failure. | 2125 | * Safe version of setvar, returns 1 on success 0 on failure. |
@@ -5304,7 +5310,7 @@ ash_arith(const char *s) | |||
5304 | int errcode = 0; | 5310 | int errcode = 0; |
5305 | 5311 | ||
5306 | math_hooks.lookupvar = lookupvar; | 5312 | math_hooks.lookupvar = lookupvar; |
5307 | math_hooks.setvar = setvar; | 5313 | math_hooks.setvar = setvar2; |
5308 | math_hooks.endofname = endofname; | 5314 | math_hooks.endofname = endofname; |
5309 | 5315 | ||
5310 | INT_OFF; | 5316 | INT_OFF; |
@@ -12526,7 +12532,7 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
12526 | } | 12532 | } |
12527 | } | 12533 | } |
12528 | 12534 | ||
12529 | r = builtin_read(setvar, | 12535 | r = shell_builtin_read(setvar2, |
12530 | argptr, | 12536 | argptr, |
12531 | bltinlookup("IFS"), /* can be NULL */ | 12537 | bltinlookup("IFS"), /* can be NULL */ |
12532 | read_flags, | 12538 | read_flags, |