-#define assert( x ) ( x ) ? (void) 0 \
- : __assert( #x, __FILE__, __func__, __LINE__ )
+#if __STDC_VERSION__ >= 199901L
+#define assert( expression ) ( ( expression ) ? (void) 0 \
+ : _PDCLIB_assert99( "Assertion failed: " #expression \
+ ", function ", __func__, \
+ ", file " __FILE__ \
+ ", line " _PDCLIB_symbol2string( __LINE__ ) \
+ "." _PDCLIB_endl ) )
+#else
+#define assert( expression ) ( ( expression ) ? (void) 0 \
+ : _PDCLIB_assert89( "Assertion failed: " #expression \
+ ", file " __FILE__ \
+ ", line " _PDCLIB_symbol2string( __LINE__ ) \
+ "." _PDCLIB_endl ) )
+#endif