xref: /plan9/sys/src/cmd/unix/drawterm/libc/sysfatal.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1 #include <u.h>
2 #include <libc.h>
3 
4 static void
_sysfatalimpl(char * fmt,va_list arg)5 _sysfatalimpl(char *fmt, va_list arg)
6 {
7 	char buf[1024];
8 
9 	vseprint(buf, buf+sizeof(buf), fmt, arg);
10 	if(argv0)
11 		fprint(2, "%s: %s\n", argv0, buf);
12 	else
13 		fprint(2, "%s\n", buf);
14 #undef write
15 write(2, buf, strlen(buf));
16 write(2, "\n", 1);
17 	panic("sysfatal");
18 }
19 
20 void (*_sysfatal)(char *fmt, va_list arg) = _sysfatalimpl;
21 
22 void
sysfatal(char * fmt,...)23 sysfatal(char *fmt, ...)
24 {
25 	va_list arg;
26 
27 	va_start(arg, fmt);
28 	(*_sysfatal)(fmt, arg);
29 	va_end(arg);
30 }
31