From fe5e23bf75043302a3492c9a7cd2f30f20f51b2e Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 24 Nov 2007 02:23:51 +0000 Subject: [PATCH] remove echo_main -> bb_echo indirection --- coreutils/echo.c | 20 ++++++++------------ include/libbb.h | 2 +- shell/ash.c | 2 +- shell/hush.c | 2 +- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/coreutils/echo.c b/coreutils/echo.c index 4c7a917..e39b466 100644 --- a/coreutils/echo.c +++ b/coreutils/echo.c @@ -25,9 +25,13 @@ #include "libbb.h" +/* This is a NOFORK applet. Be very careful! */ + /* argc is unused, but removing it precludes compiler from * using call -> jump optimization */ -int bb_echo(int argc, char **argv) + +int echo_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int echo_main(int argc, char **argv) { const char *arg; #if !ENABLE_FEATURE_FANCY_ECHO @@ -38,7 +42,7 @@ int bb_echo(int argc, char **argv) /* We must check that stdout is not closed. * The reason for this is highly non-obvious. - * bb_echo is used from shell. Shell must correctly handle "echo foo" + * echo_main is used from shell. Shell must correctly handle "echo foo" * if stdout is closed. With stdio, output gets shoveled into * stdout buffer, and even fflush cannot clear it out. It seems that * even if libc receives EBADF on write attempts, it feels determined @@ -135,14 +139,6 @@ int bb_echo(int argc, char **argv) return fflush(stdout); } -/* This is a NOFORK applet. Be very careful! */ - -int echo_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; -int echo_main(int argc, char **argv) -{ - return bb_echo(argc, argv); -} - /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. @@ -185,7 +181,7 @@ int echo_main(int argc, char **argv) #ifdef VERSION_WITH_WRITEV /* We can't use stdio. * The reason for this is highly non-obvious. - * bb_echo is used from shell. Shell must correctly handle "echo foo" + * echo_main is used from shell. Shell must correctly handle "echo foo" * if stdout is closed. With stdio, output gets shoveled into * stdout buffer, and even fflush cannot clear it out. It seems that * even if libc receives EBADF on write attempts, it feels determined @@ -195,7 +191,7 @@ int echo_main(int argc, char **argv) * Using writev instead, with 'direct' conversion of argv vector. */ -int bb_echo(int argc, char **argv) +int echo_main(int argc, char **argv) { struct iovec io[argc]; struct iovec *cur_io = io; diff --git a/include/libbb.h b/include/libbb.h index 77392d0..095647d 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -728,7 +728,7 @@ extern void bb_verror_msg(const char *s, va_list p, const char *strerr); /* applets which are useful from another applets */ int bb_cat(char** argv); -int bb_echo(int argc, char** argv); +int echo_main(int argc, char** argv) MAIN_EXTERNALLY_VISIBLE; int test_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; int kill_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; #if ENABLE_ROUTE diff --git a/shell/ash.c b/shell/ash.c index 4113ce8..7f75316 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -11003,7 +11003,7 @@ exitcmd(int argc, char **argv) static int echocmd(int argc, char **argv) { - return bb_echo(argc, argv); + return echo_main(argc, argv); } #endif diff --git a/shell/hush.c b/shell/hush.c index a9c1fe7..f7e2a4a 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -853,7 +853,7 @@ static int builtin_echo(char **argv) argc++; argv++; } - return bb_echo(argc, argv - argc); + return echo_main(argc, argv - argc); } /* built-in 'eval' handler */ -- 2.7.4