45 lines
659 B
C
45 lines
659 B
C
#include "x.h"
|
|
|
|
extern int dodebug;
|
|
|
|
static void _log_stderr(const char *fmt, va_list ap)
|
|
{
|
|
char buf[MAXLINE];
|
|
|
|
vsnprintf(buf, MAXLINE-1, fmt, ap);
|
|
fflush(stdout);
|
|
fputs(buf, stderr);
|
|
fflush(stderr);
|
|
}
|
|
|
|
void fatal(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
va_start(ap, fmt);
|
|
_log_stderr(fmt, ap);
|
|
va_end(ap);
|
|
exit(1);
|
|
}
|
|
|
|
void debug(const char *fmt, ...)
|
|
{
|
|
va_list ap;
|
|
|
|
if (dodebug) {
|
|
va_start(ap, fmt);
|
|
_log_stderr(fmt, ap);
|
|
va_end(ap);
|
|
}
|
|
}
|
|
|
|
void *xmalloc(size_t size)
|
|
{
|
|
void *foo = malloc(size);
|
|
|
|
if (foo == NULL) {
|
|
fatal("Not enough memory\n");
|
|
}
|
|
return foo;
|
|
}
|
|
|