echo.c - 9base - revived minimalist port of Plan 9 userland to Unix
(HTM) git clone git://git.suckless.org/9base
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
echo.c (553B)
---
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 strcpy(p, argv[i]);
26 p += strlen(p);
27 if(i < argc-1)
28 *p++ = ' ';
29 }
30
31 if(!nflag)
32 *p++ = '\n';
33
34 if(write(1, buf, p-buf) < 0)
35 fprint(2, "echo: write error: %r\n");
36
37 exits((char *)0);
38 }