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