echo.c - 9base - revived minimalist port of Plan 9 userland to Unix | |
git clone git://git.suckless.org/9base | |
Log | |
Files | |
Refs | |
README | |
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 } |