xref: /plan9/sys/src/cmd/echo.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1 #include <u.h>
2 #include <libc.h>
3 
4 void
5 main(int argc, char *argv[])
6 {
7 	int nflag;
8 	int i, len;
9 	char *buf, *p;
10 
11 	nflag = 0;
12 	if(argc > 1 && strcmp(argv[1], "-n") == 0)
13 		nflag = 1;
14 
15 	len = 1;
16 	for(i = 1+nflag; i < argc; i++)
17 		len += strlen(argv[i])+1;
18 
19 	buf = malloc(len);
20 	if(buf == 0)
21 		exits("no memory");
22 
23 	p = buf;
24 	for(i = 1+nflag; i < argc; i++)
25 		p += sprint(p, i == argc-1 ? "%s":"%s ", argv[i]);
26 
27 	if(!nflag)
28 		sprint(p, "\n");
29 
30 	if(write(1, buf, strlen(buf)) < 0)
31 		fprint(2, "echo: write error: %r\n");
32 
33 	exits((char *)0);
34 }
35