shells: remove few statics and duplicated code
(much more of the same remains, alas)
function old new delta
doset 330 332 +2
warn 53 51 -2
onecommand 463 461 -2
ioecho 40 38 -2
forkexec 1412 1410 -2
err 81 79 -2
setdash 59 56 -3
flag 4 - -4
msh_main 1389 1384 -5
eval 388 381 -7
subgetc 759 747 -12
static.local 14 - -14
b_adduint 70 52 -18
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 1/10 up/down: 2/-73) Total: -71 bytes
diff --git a/shell/hush.c b/shell/hush.c
index 9489fb2..6173afc 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -20,7 +20,6 @@
* rewrites.
*
* Other credits:
- * simple_itoa() was lifted from boa-0.93.15
* b_addchr() derived from similar w_addchar function in glibc-2.2
* setup_redirect(), redirect_opt_num(), and big chunks of main()
* and many builtins derived from contributions by Erik Andersen
@@ -280,7 +279,7 @@
/* belongs in busybox.h */
static int max(int a, int b)
{
- return (a>b)?a:b;
+ return (a > b) ? a : b;
}
/* This should be in utility.c */
@@ -811,23 +810,12 @@
return b_addchr(o, ch);
}
-/* belongs in utility.c */
-static char *simple_itoa(unsigned i)
-{
- static char local[sizeof(int)*3 + 2];
- char *p = &local[sizeof(int)*3 + 2 - 1];
- *p-- = '\0';
- do {
- *p-- = '0' + i % 10;
- i /= 10;
- } while (i > 0);
- return p + 1;
-}
-
static int b_adduint(o_string *o, unsigned i)
{
int r;
- char *p = simple_itoa(i);
+ char buf[sizeof(unsigned)*3 + 1];
+ char *p = buf;
+ *(utoa_to_buf(i, buf, sizeof(buf))) = '\0';
/* no escape checking necessary */
do r = b_addchr(o, *p++); while (r == 0 && *p);
return r;
@@ -2008,8 +1996,8 @@
{ "do", RES_DO, FLAG_DONE },
{ "done", RES_DONE, FLAG_END }
};
+ enum { NRES = sizeof(reserved_list)/sizeof(reserved_list[0]) };
const struct reserved_combo *r;
-#define NRES sizeof(reserved_list)/sizeof(reserved_list[0])
for (r = reserved_list; r < reserved_list+NRES; r++) {
if (strcmp(dest->data, r->literal) == 0) {
@@ -2113,11 +2101,13 @@
struct child_prog *prog = ctx->child;
if (prog && prog->group == NULL
- && prog->argv == NULL
- && prog->redirects == NULL) {
+ && prog->argv == NULL
+ && prog->redirects == NULL
+ ) {
debug_printf("done_command: skipping null command\n");
return 0;
- } else if (prog) {
+ }
+ if (prog) {
pi->num_progs++;
debug_printf("done_command: num_progs incremented to %d\n", pi->num_progs);
} else {
@@ -2172,7 +2162,7 @@
return -3; /* "-" represents "close me" */
}
while (isdigit(ch)) {
- d = d*10+(ch-'0');
+ d = d*10 + (ch-'0');
ok = 1;
b_getch(input);
ch = b_peek(input);
@@ -2226,7 +2216,7 @@
} else if (pid == 0) {
close(channel[0]);
if (channel[1] != 1) {
- dup2(channel[1],1);
+ dup2(channel[1], 1);
close(channel[1]);
}
_exit(run_list_real(head)); /* leaks memory */