]> mj.ucw.cz Git - libucw.git/blobdiff - lib/lib.h
Fix escaping of "+" characters in outgoing parameters. (BTW: when Galeon
[libucw.git] / lib / lib.h
index 7c3eb5ff472f367bb8efc82a1dad862f07148db6..c1709ea21a32b05c8d453b89a6946d6dc2906450 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -2,6 +2,9 @@
  *     Sherlock Library -- Miscellaneous Functions
  *
  *     (c) 1997--2001 Martin Mares <mj@ucw.cz>
+ *
+ *     This software may be freely distributed and used according to the terms
+ *     of the GNU Lesser General Public License.
  */
 
 /*
@@ -52,9 +55,11 @@ void log_file(byte *);
 void log_fork(void);
 
 #ifdef DEBUG
-#define ASSERT(x) do { if (!(x)) die("Assertion `%s' failed at %s:%d", #x, __FILE__, __LINE__); } while(0)
+void assert_failed(char *assertion, char *file, int line) NONRET;
+#define ASSERT(x) do { if (!(x)) assert_failed(#x, __FILE__, __LINE__); } while(0)
 #else
-#define ASSERT(x) do { } while(0)
+void assert_failed(void) NONRET;
+#define ASSERT(x) do { if (__builtin_constant_p(x) && !(x)) assert_failed(); } while(0)
 #endif
 
 #ifdef LOCAL_DEBUG
@@ -84,11 +89,11 @@ void log_fork(void);
  */
 #define xmalloc sh_xmalloc
 void *xmalloc(unsigned);
-void *xmalloc_zero(unsigned);
 void *xrealloc(void *, unsigned);
 #define xfree(x) free(x)
 #endif
 
+void *xmalloc_zero(unsigned);
 byte *stralloc(byte *);
 
 /* Objects */