summaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko2009-11-02 14:19:51 +0100
committerDenys Vlasenko2009-11-02 14:19:51 +0100
commit8131eea3dce5fba0dfb78e6083d1730423fad20b (patch)
treec098d7ba6ef9f4745425a29a330480e6088d6d9a /shell
parent0d8ea64af618dc83c3291b3b598636ed3d0854e4 (diff)
downloadbusybox-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.c17
-rw-r--r--shell/hush.c14
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;
}