#define BUFSIZ 1024
#include <sys/file.h>
main(argc,argv)
int argc;
char **argv;
{
char *ofile, buf[BUFSIZ];
int fd, n, p, neednl;
argc--, argv++;
neednl = 0;
p = 1;
if (**argv == '-') {
if ((fd = open(argv[0]+1,O_WRONLY|O_APPEND|O_CREAT,0644)) < 0
|| dup2(fd, 1) < 0) {
perror(argv[0]+1);
exit(1);
}
argc--, argv++;
}
while (argc--) {
if ((fd = open(*argv, 0)) < 0) {
perror(*argv++);
continue;
}
argv++;
if (neednl)
write(1, "\n", 1);
while ((n = read(fd, buf, BUFSIZ)) > 0) {
write(1, buf, n);
if (n == 1)
neednl = !(buf[0] == '\n' && buf[p-1] == '\n');
else
neednl = !(buf[n-1] == '\n' && buf[n-2]=='\n');
p = n;
}
close(fd);
}
if (neednl)
write(1, "\n", 1);
exit(0);
}
syntax highlighted by Code2HTML, v. 0.9.1