commit 9b5f08d6f013d4b123ca1e00f8ee9f6c15625289
parent 8bb0a76de071706c0425755add0d05031ad7ce38
Author: Jake Koroman <jake@jakekoroman.com>
Date: Wed, 15 Oct 2025 10:26:37 -0400
jrk_assert always exits.
Diffstat:
M | jrk.h | | | 18 | +++++++++++++++--- |
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/jrk.h b/jrk.h
@@ -158,7 +158,6 @@ char *jrk_tmpstrings_pushf(char*, ...);
#define jrk_eelog(x) jrk_elog(x": %s", strerror(errno))
#define jrk_eelogv(x, ...) jrk_elogv(x": %s", __VA_ARGS__, strerror(errno))
-#define JRK_NO_EXIT_ON_DIE
#ifdef JRK_NO_EXIT_ON_DIE
#undef jrk_edie
#define jrk_edie jrk_eelog
@@ -174,8 +173,21 @@ char *jrk_tmpstrings_pushf(char*, ...);
#endif
/* NOTE: no shortname as 'assert' is just too generic */
-#define jrk_assert(c, msg) do { if (!(c)) jrk_die("jrk_assert: "msg); } while(0)
-#define jrk_assertv(c, msg, ...) do { if (!(c)) jrk_diev("jrk_assert: "msg, __VA_ARGS__); } while(0)
+#define jrk_assert(c, msg) \
+ do { \
+ if (!(c)) { \
+ fprintf(stderr, "%s:%d: error: "msg"\n", __FILE__, __LINE__); \
+ exit(69); \
+ } \
+ } while(0)
+
+#define jrk_assertv(c, msg, ...) \
+ do { \
+ if (!(c)) { \
+ fprintf(stderr, "%s:%d: error: "msg"\n", __FILE__, __LINE__, __VA_ARGS__); \
+ exit(69); \
+ } \
+ } while(0)
#define jrk_shift(x, n) ((n)--, *(x)++)
#define jrk_shift_loop(x, n, it) for (char *it = jrk_shift(x, n); n >= 0; it = jrk_shift(x, n))