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
No binary (build failed)
—
(log yok)
| @@ -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 @@ struct built_in_command { | |
| /* 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 @@ static int b_addqchr(o_string *o, int ch, int quote) | |
| 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 @@ static int reserved_word(o_string *dest, struct p_context *ctx) | |
| { "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 @@ static int done_command(struct p_context *ctx) | |
| 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 @@ static int redirect_dup_num(struct in_str *input) | |
| 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 @@ static FILE *generate_stream_from_list(struct pipe *head) | |
| } 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 */ | |
| @@ -264,10 +264,6 @@ static const char *const T_CMD_NAMES[] = { | |
| #define DOALL (DOSUB|DOBLANK|DOGLOB|DOKEY|DOTRIM) | |
| - | /* PROTOTYPES */ |
| - | static int newfile(char *s); |
| - | |
| - | |
| struct brkcon { | |
| jmp_buf brkpt; | |
| struct brkcon *nextlev; | |
| @@ -285,8 +281,8 @@ struct brkcon { | |
| * -u: unset variables net diagnostic | |
| */ | |
| static char flags['z' - 'a' + 1]; | |
| - | /* this looks weird, but is OK ... we index flag with 'a'...'z' */ |
| - | static char *flag = flags - 'a'; |
| + | /* this looks weird, but is OK ... we index FLAG with 'a'...'z' */ |
| + | #define FLAG (flags - 'a') |
| /* moved to G: static char *trap[_NSIG + 1]; */ | |
| /* moved to G: static char ourtrap[_NSIG + 1]; */ | |
| @@ -693,7 +689,7 @@ static int intr; /* interrupt pending */ | |
| static int inparse; | |
| static char *null = (char*)""; /* null value for variable */ | |
| static int heedint = 1; /* heed interrupt signals */ | |
| - | static void (*qflag) (int) = SIG_IGN; |
| + | static void (*qflag)(int) = SIG_IGN; |
| static int startl; | |
| static int peeksym; | |
| static int nlseen; | |
| @@ -855,14 +851,14 @@ static void warn(const char *s) | |
| exstat = -1; | |
| } | |
| prs("\n"); | |
| - | if (flag['e']) |
| + | if (FLAG['e']) |
| leave(); | |
| } | |
| static void err(const char *s) | |
| { | |
| warn(s); | |
| - | if (flag['n']) |
| + | if (FLAG['n']) |
| return; | |
| if (!interactive) | |
| leave(); | |
| @@ -1295,7 +1291,7 @@ static void setdash(void) | |
| cp = m; | |
| for (c = 'a'; c <= 'z'; c++) | |
| - | if (flag[c]) |
| + | if (FLAG[c]) |
| *cp++ = c; | |
| *cp = '\0'; | |
| setval(lookup("-"), m); | |
| @@ -1401,7 +1397,7 @@ static void onecommand(void) | |
| intr = 0; | |
| execflg = 0; | |
| - | if (!flag['n']) { |
| + | if (!FLAG['n']) { |
| DBGPRINTF(("ONECOMMAND: calling execute, t=outtree=%p\n", | |
| outtree)); | |
| execute(outtree, NOPIPE, NOPIPE, 0); | |
| @@ -2736,7 +2732,7 @@ static int forkexec(struct op *t, int *pin, int *pout, int act, char **wp) | |
| /* strip all initial assignments */ | |
| /* not correct wrt PATH=yyy command etc */ | |
| - | if (flag['x']) { |
| + | if (FLAG['x']) { |
| DBGPRINTF9(("FORKEXEC: echo'ing, cp=%p, wp=%p, owp=%p\n", | |
| cp, wp, owp)); | |
| echo(cp ? wp : owp); | |
| @@ -3598,18 +3594,18 @@ static int doset(struct op *t) | |
| /* bad: t->words++; */ | |
| for (n = 0; (t->words[n] = t->words[n + 1]) != NULL; n++); | |
| if (*++cp == 0) | |
| - | flag['x'] = flag['v'] = 0; |
| + | FLAG['x'] = FLAG['v'] = 0; |
| else { | |
| for (; *cp; cp++) { | |
| switch (*cp) { | |
| case 'e': | |
| if (!interactive) | |
| - | flag['e']++; |
| + | FLAG['e']++; |
| break; | |
| default: | |
| if (*cp >= 'a' && *cp <= 'z') | |
| - | flag[(int) *cp]++; |
| + | FLAG[(int) *cp]++; |
| break; | |
| } | |
| } | |
| @@ -3692,14 +3688,14 @@ static char **eval(char **ap, int f) | |
| if (newenv(setjmp(errpt)) == 0) { | |
| while (*ap && isassign(*ap)) | |
| expand(*ap++, &wb, f & ~DOGLOB); | |
| - | if (flag['k']) { |
| + | if (FLAG['k']) { |
| for (wf = ap; *wf; wf++) { | |
| if (isassign(*wf)) | |
| expand(*wf, &wb, f & ~DOGLOB); | |
| } | |
| } | |
| for (wb = addword((char *) 0, wb); *ap; ap++) { | |
| - | if (!flag['k'] || !isassign(*ap)) |
| + | if (!FLAG['k'] || !isassign(*ap)) |
| expand(*ap, &wb, f & ~DOKEY); | |
| } | |
| wb = addword((char *) 0, wb); | |
| @@ -3992,7 +3988,7 @@ static int dollar(int quoted) | |
| } | |
| } else if (c == '+') | |
| dolp = strsave(cp, areanum); | |
| - | if (flag['u'] && dolp == null) { |
| + | if (FLAG['u'] && dolp == null) { |
| prs("unset variable: "); | |
| err(s); | |
| gflg++; | |
| @@ -4613,7 +4609,7 @@ static int readc(void) | |
| static void ioecho(char c) | |
| { | |
| - | if (flag['v']) |
| + | if (FLAG['v']) |
| write(2, &c, sizeof c); | |
| } | |
| @@ -5278,7 +5274,7 @@ int msh_main(int argc, char **argv) | |
| interactive++; | |
| default: | |
| if (*s >= 'a' && *s <= 'z') | |
| - | flag[(int) *s]++; |
| + | FLAG[(int) *s]++; |
| } | |
| } else { | |
| argv--; | |