/* arch-tag: f49dbda4-c75c-4aa8-822f-b8470a4f7496 */ #include #include #include #include #include "panic.h" bool verbose_mode = false; void print_verbose(char *s, ...) { va_list ap; char buf[PANIC_BUFSIZE]; if(!verbose_mode) return; va_start(ap, s); vsnprintf(buf, PANIC_BUFSIZE, s, ap); buf[PANIC_BUFSIZE - 1] = '\0'; fprintf(stderr, "%s\n", buf); va_end(ap); } void panicf(char *s, ...) { va_list ap; char buf[PANIC_BUFSIZE]; va_start(ap, s); vsnprintf(buf, PANIC_BUFSIZE, s, ap); buf[PANIC_BUFSIZE - 1] = '\0'; fprintf(stderr, "%s\n", buf); va_end(ap); exit(1); } void panicnof(char *s, ...) { va_list ap; char buf[PANIC_BUFSIZE]; va_start(ap, s); vsnprintf(buf, PANIC_BUFSIZE, s, ap); buf[PANIC_BUFSIZE - 1] = '\0'; perror(buf); va_end(ap); exit(1); } void panic(char *s) { panicf("%s", s); } void panicno(char *s) { panicnof("%s", s); }