blob: adac61157127d519cf80c351b16da9b6dce74a01 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include <u.h>
#include <libn.h>
int
main(int argc, char *argv[])
{
char *s, *b, *c;
int i, nnl, len;
static char buf[2*1024];
nnl = (argc>1) && strcmp(argv[1], "-n")==0;
len = 1;
for(i = 1+nnl; i < argc; i++)
len += strlen(argv[i])+1;
if (len >= arrlen(buf)) {
s = b = calloc(len, sizeof *s);
if (!s)
exits("no memory");
} else
s = b = buf;
for (i = 1+nnl; i < argc; i++) {
c = argv[i];
while(*c)
*b++ = *c++;
if (i < argc-1)
*b++ = ' ';
}
if (!nnl)
*b++ = '\n';
if (write(1, s, b-s) < 0)
exits("write error");
exit(0);
}
|