-// ----------------------------------------------------------------------------
-// $Id$
-// ----------------------------------------------------------------------------
-// Public Domain C Library - http://pdclib.sourceforge.net
-// This code is Public Domain. Use, modify, and redistribute at will.
-// ----------------------------------------------------------------------------
-// Diagnostics
-// ----------------------------------------------------------------------------
+/* ----------------------------------------------------------------------------
+ * $Id$
+ * ----------------------------------------------------------------------------
+ * Public Domain C Library - http://pdclib.sourceforge.net
+ * This code is Public Domain. Use, modify, and redistribute at will.
+ * ----------------------------------------------------------------------------
+ * Diagnostics
+ * --------------------------------------------------------------------------*/
-#ifndef __ASSERT_H
-#define __ASSERT_H __ASSERT_H
+#ifndef _ASSERT_H
+#define _ASSERT_H _ASSERT_H
-// ----------------------------------------------------------------------------
-// AUXILIARY
+/* ----------------------------------------------------------------------------
+ * AUXILIARY
+ * --------------------------------------------------------------------------*/
-// Helper function doing the print to stderr and call to abort().
-void __assert( char const * const expression, // the tested expression
- char const * const file, // name of source file
- char const * const function, // name of function
- int const line ); // number of source file line
+/* Helper function doing the print to stderr and call to abort(). */
+void __assert( char const * const expression, /* the tested expression */
+ char const * const file, /* name of source file */
+ char const * const function, /* name of function */
+ int const line ); /* number of source file line */
-// ----------------------------------------------------------------------------
-// DEFINES
+#endif /* _ASSERT_H - note that the header guard ends here on purpose. The
+ assert macro is redefined upon each inclusion, in
+ dependence of NDEBUG. */
-// TODO: Check the macro for if-compatibility.
+/* ----------------------------------------------------------------------------
+ * DEFINES
+ * --------------------------------------------------------------------------*/
#undef assert
#if defined NDEBUG
#define assert( x ) ( x ) ? ( (void) 0 ) \
: __assert( #x, __FILE__, __func__, __LINE__ )
#endif
-
-#endif // __ASSERT_H