#include <fmt.h>
#include "bio.h"

Biobuf bout;

void
bcat(Biobuf *b, char *name)
{
	char buf[1000];
	int n;

	while((n = Bread(b, buf, sizeof buf)) > 0){
		if(Bwrite(&bout, buf, n) < 0)
			fprint(2, "writing during %s: %r\n", name);
	}
	if(n < 0)
		fprint(2, "reading %s: %r\n", name);	
}

int
main(int argc, char **argv)
{
	int i;
	Biobuf b, *bp;

	Binit(&bout, 1, O_WRONLY);

	if(argc == 1){
		Binit(&b, 0, O_RDONLY);
		bcat(&b, "<stdin>");
	}else{
		for(i=1; i<argc; i++){
			if((bp = Bopen(argv[i], O_RDONLY)) == 0){
				fprint(2, "Bopen %s: %r\n", argv[i]);
				continue;
			}
			bcat(bp, argv[i]);
			Bterm(bp);
		}
	}
	exit(0);
}
