git: 9front

ref: 147b367e710c4a6e02a7da17661b18a6cf2b3bad
dir: /sys/src/libbio/blethal.c/

View raw version
#include	<u.h>
#include	<libc.h>
#include	<bio.h>

void
Berror(Biobufhdr *bp, char *fmt, ...)
{
	va_list va;
	char buf[ERRMAX];

	if(bp->errorf == nil)
		return;
	
	va_start(va, fmt);
	vsnprint(buf, ERRMAX, fmt, va);
	va_end(va);
	bp->errorf(buf);
}

static void
Bpanic(char *s)
{
	sysfatal("%s", s);
}

void
Blethal(Biobufhdr *bp, void (*errorf)(char *))
{
	if(errorf == nil)
		errorf = Bpanic;

	bp->errorf = errorf;
}