From ef3e71dac35bf73e0d8572057112e5dcdf5dc7c4 Mon Sep 17 00:00:00 2001 From: Nate Lawson Date: Wed, 13 Nov 2002 01:39:02 +0000 Subject: [PATCH] Put echo on a diet, removing unnecessary use of stdio and getopt. Before... -r-xr-xr-x 1 root wheel 58636 Oct 28 05:16 /bin/echo After... -rwxr-xr-x 1 root wheel 12824 Nov 12 17:39 /usr/obj/usr/src/bin/echo/echo Submitted by: Tim Kientzle --- bin/echo/echo.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/bin/echo/echo.c b/bin/echo/echo.c index 6a7a2b14f6f5..b4aeb62ee131 100644 --- a/bin/echo/echo.c +++ b/bin/echo/echo.c @@ -45,8 +45,7 @@ static char sccsid[] = "@(#)echo.c 8.1 (Berkeley) 5/31/93"; #include __FBSDID("$FreeBSD$"); -#include -#include +#include #include /* ARGSUSED */ @@ -64,6 +63,9 @@ main(int argc __unused, char *argv[]) nflag = 0; while (argv[0] != NULL) { + size_t len; + + len = strlen(argv[0]); /* * If the next argument is NULL then this is this @@ -71,23 +73,20 @@ main(int argc __unused, char *argv[]) * for a trailing \c. */ if (argv[1] == NULL) { - size_t len; - - len = strlen(argv[0]); /* is there room for a '\c' and is there one? */ if (len >= 2 && argv[0][len - 2] == '\\' && argv[0][len - 1] == 'c') { /* chop it and set the no-newline flag. */ - argv[0][len - 2] = '\0'; + len -= 2; nflag = 1; } } - (void)printf("%s", argv[0]); + write(STDOUT_FILENO, argv[0], len); if (*++argv) - putchar(' '); + write(STDOUT_FILENO, " ", 1); } if (!nflag) - putchar('\n'); + write(STDOUT_FILENO, "\n", 1); return 0; }