code: plan9front

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