summaryrefslogtreecommitdiff
path: root/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'debug.h')
-rw-r--r--debug.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/debug.h b/debug.h
new file mode 100644
index 0000000..540f200
--- /dev/null
+++ b/debug.h
@@ -0,0 +1,49 @@
+#ifndef __DEBUG_H
+#define __DEBUG_H
+
+#include <stdio.h>
+#include <errno.h>
+
+#ifndef NOCOLOR
+#define GREEN ""
+#define DEF ""
+#define RED ""
+#else
+#define GREEN
+#define DEF
+#define RED
+#endif
+
+#ifndef NDEBUG
+#define DEBUG_CODE(code) \
+do { \
+ code; \
+} while (0)
+#else
+#define DEBUG_CODE(code)
+#endif
+
+#define PROMPT_FMT(fmt) GREEN "%s" DEF ":" GREEN "%d" DEF ": " fmt
+
+#define msg_err(fmt, args...) \
+ fprintf(stderr, PROMPT_FMT(fmt) ": " \
+ RED "%s" DEF "\n", \
+ __FILE__, __LINE__, ## args, strerror(errno))
+
+#define msg_warn(fmt, args...) \
+ fprintf(stderr, PROMPT_FMT(fmt) "\n", \
+ __FILE__, __LINE__, ## args)
+
+#define sys_err(fmt, args...) \
+do { \
+ msg_err(fmt, ## args); \
+ exit(1); \
+} while (0)
+
+#define err_quit(fmt, args...) \
+do { \
+ msg_warn(fmt, ## args); \
+ exit(1); \
+} while (0)
+
+#endif