]> git.saurik.com Git - minimal.git/blobdiff - sqlite3.h
Minor changes to the {,_}sqlcall macro.
[minimal.git] / sqlite3.h
index b721343a7a0da202a423d27d364cb3d849be93b2..50c3bd571ab609479f6c9bbb7a6041cf0afea4fb 100644 (file)
--- a/sqlite3.h
+++ b/sqlite3.h
 #include <sqlite3.h>
 #include <string.h>
 
-#define sqlcall(expr) \
-    do { \
-        int _value = (expr); \
-        if (_value == 0 || (_value >= 100 && _value < 200)) \
-            break; \
-        fprintf(stderr, "%s(%u): sqlcall(%u:%s): %s\n", __FILE__, __LINE__, _value, #expr, sqlite3_errmsg(database_)); \
-        exit(1); \
-    } while (false)
+#define _sqlcall(expr) ({ \
+    __typeof__(expr) _value = (expr); \
+    if (_value != 0 && (_value < 100 || _value >= 200)) \
+        _assert(false, "_sqlcall(%u:%s): %s\n", _value, #expr, sqlite3_errmsg(database_)); \
+    _value; \
+})
 
 int sqlite3_bind_string(sqlite3_stmt *stmt, int n, const char *value) {
     if (value == NULL)