#include #include #include #include #include "util.h" static void xvprintf(const char *, va_list); void eprintf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); xvprintf(fmt, ap); va_end(ap); abort(); } void weprintf(const char *fmt, ...) { va_list ap; va_start(ap, fmt); xvprintf(fmt, ap); va_end(ap); } void xvprintf(const char *fmt, va_list ap) { /**TODO: provide other logging target than stderr */ fputs("libbrandt: ", stderr); vfprintf(stderr, fmt, ap); if (fmt[0] && fmt[strlen(fmt)-1] == ':') { fputc(' ', stderr); perror(NULL); } else { fputc('\n', stderr); } }