git: 9front

ref: dbee0efe67420cc925e1a46de6c6fd3f3ab5e70d
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;
}