diff options
author | Denys Vlasenko | 2009-11-02 14:19:51 +0100 |
---|---|---|
committer | Denys Vlasenko | 2009-11-02 14:19:51 +0100 |
commit | 8131eea3dce5fba0dfb78e6083d1730423fad20b (patch) | |
tree | c098d7ba6ef9f4745425a29a330480e6088d6d9a /shell | |
parent | 0d8ea64af618dc83c3291b3b598636ed3d0854e4 (diff) | |
download | busybox-8131eea3dce5fba0dfb78e6083d1730423fad20b.zip busybox-8131eea3dce5fba0dfb78e6083d1730423fad20b.tar.gz |
*: introduce and use ffulsh_all()
function old new delta
buffer_fill_and_print 179 196 +17
fflush_all - 9 +9
spawn 87 92 +5
rtcwake_main 455 453 -2
...
alarm_intr 93 84 -9
readcmd 1072 1062 -10
bb_ask 345 333 -12
more_main 845 832 -13
flush_stdout_stderr 42 23 -19
xfflush_stdout 27 - -27
flush_stderr 30 - -30
------------------------------------------------------------------------------
(add/remove: 1/2 grow/shrink: 2/50 up/down: 31/-397) Total: -366 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 17 | ||||
-rw-r--r-- | shell/hush.c | 14 |
2 files changed, 11 insertions, 20 deletions
diff --git a/shell/ash.c b/shell/ash.c index 481b841..6b985ad 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -389,16 +389,7 @@ static void flush_stdout_stderr(void) { INT_OFF; - fflush(stdout); - fflush(stderr); - INT_ON; -} - -static void -flush_stderr(void) -{ - INT_OFF; - fflush(stderr); + fflush_all(); INT_ON; } @@ -451,7 +442,7 @@ static void out2str(const char *p) { outstr(p, stderr); - flush_stderr(); + flush_stdout_stderr(); } @@ -8184,7 +8175,7 @@ evaltree(union node *n, int flags) default: #if DEBUG out1fmt("Node type = %d\n", n->type); - fflush(stdout); + fflush_all(); break; #endif case NNOT: @@ -9101,7 +9092,7 @@ evalcommand(union node *cmd, int flags) for (;;) { find_command(argv[0], &cmdentry, cmd_flag, path); if (cmdentry.cmdtype == CMDUNKNOWN) { - flush_stderr(); + flush_stdout_stderr(); status = 127; goto bail; } diff --git a/shell/hush.c b/shell/hush.c index 1187cbe..891d87b 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -1206,7 +1206,7 @@ static void hush_exit(int exitcode) } #if ENABLE_HUSH_JOB - fflush(NULL); /* flush all streams */ + fflush_all(); sigexit(- (exitcode & 0xff)); #else exit(exitcode); @@ -1679,7 +1679,7 @@ static void get_user_input(struct in_str *i) do { G.flag_SIGINT = 0; fputs(prompt_str, stdout); - fflush(stdout); + fflush_all(); G.user_input_buf[0] = r = fgetc(i->file); /*G.user_input_buf[1] = '\0'; - already is and never changed */ //do we need check_and_run_traps(0)? (maybe only if stdin) @@ -3220,7 +3220,7 @@ static void exec_function(char ***to_free, G.global_argc = n; /* On MMU, funcp->body is always non-NULL */ n = run_list(funcp->body); - fflush(NULL); + fflush_all(); _exit(n); # else re_execute_shell(to_free, @@ -3307,7 +3307,7 @@ static void exec_builtin(char ***to_free, { #if BB_MMU int rcode = x->function(argv); - fflush(NULL); + fflush_all(); _exit(rcode); #else /* On NOMMU, we must never block! @@ -3933,7 +3933,7 @@ static NOINLINE int run_pipe(struct pipe *pi) debug_printf_exec(": builtin '%s' '%s'...\n", x->cmd, argv_expanded[1]); rcode = x->function(argv_expanded) & 0xff; - fflush(NULL); + fflush_all(); } #if ENABLE_HUSH_FUNCTIONS else { @@ -7136,7 +7136,7 @@ static int FAST_FUNC builtin_export(char **argv) putchar('\n'); #endif } - /*fflush(stdout); - done after each builtin anyway */ + /*fflush_all(); - done after each builtin anyway */ } return EXIT_SUCCESS; } @@ -7181,7 +7181,7 @@ static int FAST_FUNC builtin_trap(char **argv) printf(" %s\n", get_signame(i)); } } - /*fflush(stdout); - done after each builtin anyway */ + /*fflush_all(); - done after each builtin anyway */ return EXIT_SUCCESS; } |