// Copyright (C) 2023, Jakob Wakeling // All rights reserved. #ifndef ESH_UTIL_LOG_H_MNZFBC4G #define ESH_UTIL_LOG_H_MNZFBC4G #define log_warn(format, ...) do { \ log_print(format __VA_OPT__(,) __VA_ARGS__); \ __warned = true; \ } while (0) extern bool __debug, __warned; [[noreturn]] extern void log_abort(const char *restrict format, ...); [[noreturn]] extern void log_fatal(int status, const char *restrict format, ...); extern void log_print(const char *restrict format, ...); extern void log_debug(const char *restrict format, ...); #endif // ESH_UTIL_LOG_H_MNZFBC4G