version 1.13, 2003/07/10 00:06:51 |
version 1.14, 2004/10/10 03:29:29 |
|
|
size_t len; |
size_t len; |
|
|
for (cnt = 0, head = NULL; (p = *argv); ++argv, ++cnt) { |
for (cnt = 0, head = NULL; (p = *argv); ++argv, ++cnt) { |
if (!(lp = (LIST *)malloc((u_int)sizeof(LIST)))) { |
if (!(lp = (LIST *)malloc((u_int)sizeof(LIST)))) |
(void)fprintf(stderr, "paste: %s.\n", strerror(ENOMEM)); |
err(1, "malloc"); |
exit(1); |
|
} |
|
if (p[0] == '-' && !p[1]) |
if (p[0] == '-' && !p[1]) |
lp->fp = stdin; |
lp->fp = stdin; |
else if (!(lp->fp = fopen(p, "r"))) { |
else if (!(lp->fp = fopen(p, "r"))) |
(void)fprintf(stderr, "paste: %s: %s.\n", p, |
err(1, "%s", p); |
strerror(errno)); |
|
exit(1); |
|
} |
|
lp->next = NULL; |
lp->next = NULL; |
lp->cnt = cnt; |
lp->cnt = cnt; |
lp->name = p; |
lp->name = p; |
|
|
*(buf + len - 1) = '\0'; |
*(buf + len - 1) = '\0'; |
else { |
else { |
if ((lbuf = malloc(len + 1)) == NULL) |
if ((lbuf = malloc(len + 1)) == NULL) |
err(1, NULL); |
err(1, "malloc"); |
memcpy(lbuf, buf, len); |
memcpy(lbuf, buf, len); |
lbuf[len] = '\0'; |
lbuf[len] = '\0'; |
buf = lbuf; |
buf = lbuf; |
|
|
if (p[0] == '-' && !p[1]) |
if (p[0] == '-' && !p[1]) |
fp = stdin; |
fp = stdin; |
else if (!(fp = fopen(p, "r"))) { |
else if (!(fp = fopen(p, "r"))) { |
(void)fprintf(stderr, "paste: %s: %s.\n", p, |
warn("%s", p); |
strerror(errno)); |
|
continue; |
continue; |
} |
} |
if ((buf = fgetln(fp, &len))) { |
if ((buf = fgetln(fp, &len))) { |
|
|
*(buf + len - 1) = '\0'; |
*(buf + len - 1) = '\0'; |
else { |
else { |
if ((lbuf = malloc(len + 1)) == NULL) |
if ((lbuf = malloc(len + 1)) == NULL) |
err(1, NULL); |
err(1, "malloc"); |
memcpy(lbuf, buf, len); |
memcpy(lbuf, buf, len); |
lbuf[len] = '\0'; |
lbuf[len] = '\0'; |
buf = lbuf; |
buf = lbuf; |
|
|
} else |
} else |
*arg = ch; |
*arg = ch; |
|
|
if (!cnt) { |
if (!cnt) |
(void)fprintf(stderr, "paste: no delimiters specified.\n"); |
errx(1, "no delimiters specified"); |
exit(1); |
|
} |
|
return(cnt); |
return(cnt); |
} |
} |
|
|
void |
void |
usage(void) |
usage(void) |
{ |
{ |
(void)fprintf(stderr, "paste: [-s] [-d delimiters] file ...\n"); |
extern char *__progname; |
|
(void)fprintf(stderr, "usage: %s [-s] [-d delimiters] file ...\n", |
|
__progname); |
exit(1); |
exit(1); |
} |
} |