From 154bf6f53529e88dfa03d6ff5034b575f92cdbb5 Mon Sep 17 00:00:00 2001 From: nasr Date: Tue, 14 Apr 2026 23:11:49 +0200 Subject: feature(setup): base implementation --- source/base/base_error.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 source/base/base_error.h (limited to 'source/base/base_error.h') diff --git a/source/base/base_error.h b/source/base/base_error.h new file mode 100644 index 0000000..4bf84fc --- /dev/null +++ b/source/base/base_error.h @@ -0,0 +1,43 @@ +/* base library internal error checking system */ +#ifndef BASE_ERROR_H +#define BASE_ERROR_H + +#define error_at(msg) \ + do \ + { \ + os_write(STDERR_FD, Red "[ERROR] ", Len(Red "[ERROR] ")); \ + write_string(STDERR_FD, __FILE__); \ + write_string(STDERR_FD, ":"); \ + write_int(__LINE__); \ + write_string(STDERR_FD, " in "); \ + write_string(STDERR_FD, __func__); \ + write_string(STDERR_FD, ": "); \ + write_string(STDERR_FD, (msg)); \ + os_write(STDERR_FD, Reset "\n", Len(Reset "\n")); \ + } while (0) + +#define _fatal(msg) \ + do { \ + error_at(msg); \ + _exit(1); \ + } while (0) + +#define assert_msg(expr, msg) \ + do \ + { \ + if (!(expr)) _fatal(msg); \ + } while (0) + +#define warn(msg) \ + do \ + { \ + os_write(STDERR_FD, Yellow "[WARN] ", Len(Yellow "[WARN] ")); \ + write_string(STDERR_FD, __FILE__); \ + write_string(STDERR_FD, ":"); \ + write_int(__LINE__); \ + write_string(STDERR_FD, ": "); \ + write_string(STDERR_FD, (msg)); \ + os_write(STDERR_FD, Reset "\n", Len(Reset "\n")); \ + } while (0) + +#endif /* BASE_ERROR_H */ -- cgit v1.3