]> git.draconx.ca Git - liblbx.git/blobdiff - src/misc.h
"Soften" the format assertions so that they no longer abort().
[liblbx.git] / src / misc.h
index d7a760599b4bcf3179af2eb6e4b13a43ddced731..5e5947a3597df05bbee747271fae9d0255483454 100644 (file)
@@ -1,11 +1,26 @@
 #ifndef LBX_MISC_H_
 #define LBX_MISC_H_
 
+#ifdef HAVE_CONFIG_H
+#      include "config.h"
+#endif
+
 #include <stdio.h>
 
 #define MIN(a,b) (((a)<(b))?(a):(b))
 #define MAX(a,b) (((a)>(b))?(a):(b))
 
+#ifndef NDEBUG
+#      define _lbx_dbgprint(str) (fprintf(stderr, str " [%s, %s:%d]", \
+                                          __func__, __FILE__, __LINE__))
+#      define _lbx_assert(expr) ((!(expr)) \
+               ? (_lbx_dbgprint("format assertion failed: " #expr), 0) \
+               : 1)
+#else
+#      define _lbx_dbgprint(str) 0
+#      define _lbx_assert(expr) ((expr) ? 1 : 0)
+#endif
+
 /** _lbx_fseek()
  * Seeks the specified file to the specified offset, given that the file is
  * currently positioned at *current.  If the file does not support seeking,