Neues Makro assert().
Aehnlich wie in anderen Sprachen soll das assert()-
Makro Magiern erleichtern, an wichtigen Punkten in
ihren Programmen Pruefungen auf wichtige Annahmen
und interne Konsistenz durchzufuehren.
Falls der zu pruefende Ausdruck nicht !=0 (d.h.
wahr) ist, wird ein Laufzeitfehler ausgeloest.
Change-Id: Ia994b3a59503959da0ddeb63233917d5d61c1dcc
diff --git a/sys/assert.h b/sys/assert.h
new file mode 100644
index 0000000..3eb1d43
--- /dev/null
+++ b/sys/assert.h
@@ -0,0 +1,30 @@
+// MorgenGrauen MUDlib
+//
+// assert.h -- assert macro
+
+#ifndef __ASSERT_H__
+#define __ASSERT_H__
+
+#ifdef NDEBUG
+#define assert(e,msg)
+#else
+#define assert(e,msg) \
+ if (!(e)) \
+ raise_error(sprintf( \
+ "%s:%d in function %s: failed assertion `%s'\n", \
+ __FILE__, __LINE__, __FUNCTION__, \
+ stringp(msg) ? msg : "no details given"))
+#endif
+
+#endif // __ASSERT_H__
+
+#ifdef NEED_PROTOTYPES
+
+#ifndef __ASSERT_H_PROTO__
+#define __ASSERT_H_PROTO__
+
+// prototypes
+
+#endif // __ASSERT_H_PROTO__
+
+#endif // NEED_PROTOYPES