From 1b2607e007a72565a69bf4c37a8b8cfe5f8f1152 Mon Sep 17 00:00:00 2001 From: njl Date: Wed, 13 Nov 2002 01:39:02 +0000 Subject: 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(-) (limited to 'bin/echo') diff --git a/bin/echo/echo.c b/bin/echo/echo.c index 6a7a2b1..b4aeb62 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; } -- cgit v1.1