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