summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/echo.c20
-rw-r--r--include/libbb.h2
-rw-r--r--shell/ash.c2
-rw-r--r--shell/hush.c2
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 */