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