aboutsummaryrefslogtreecommitdiff
path: root/snag/src/util.h
diff options
context:
space:
mode:
authorJack Jamison <jackqjamison@gmail.com>2026-07-22 09:09:18 -0400
committerJack Jamison <jackqjamison@gmail.com>2026-07-22 09:09:18 -0400
commit5365f8fa8d6ebfbf3ba92816abe55a99feff6f25 (patch)
tree563605dabaf611ebb0c1ee1b65aa56690b01b4fd /snag/src/util.h
parent165816f7854340c3ca09287aee66968777af61ad (diff)
clean up
Diffstat (limited to 'snag/src/util.h')
-rw-r--r--snag/src/util.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/snag/src/util.h b/snag/src/util.h
new file mode 100644
index 0000000..3813903
--- /dev/null
+++ b/snag/src/util.h
@@ -0,0 +1,31 @@
+#ifndef UTIL_H
+#define UTIL_H
+
+#include <stdarg.h>
+#include <stddef.h>
+
+// utility for errors
+#if !DEBUG
+ void log(const char* format, ...) __attribute__((format(printf, 1, 2)));
+ void die(const char* format, ...) __attribute__((format(printf, 1, 2)));
+ void* emalloc(size_t size, char* alloc_reason);
+#else
+ #define log(fmt, ...) _log(__LINE__, __FILE__, fmt, ##__VA_ARGS__)
+ void _log(int line, const char* file, const char* format, ...) __attribute__((format(printf, 3, 4)));
+
+ #define die(fmt, ...) _die(__LINE__, __FILE__, fmt, ##__VA_ARGS__)
+ void _die(int line, const char* file, const char* format, ...) __attribute__((format(printf, 3, 4)));
+
+ #define emalloc(size, alloc_reason) _emalloc(__LINE__, __FILE__, size, alloc_reason)
+ void* _emalloc(int line, const char* file, size_t size, char* alloc_reason);
+#endif
+
+// functions for outputting and displaying text
+#define printout(fmt, ...) fprintf(stdout, fmt, ##__VA_ARGS__)
+#define print(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
+
+// string functions
+char* vastrcat_(int dummy, ...);
+#define vastrcat(...) vastrcat_(0, __VA_ARGS__, NULL)
+
+#endif