#ifndef assert
/**
*
* name		assert -- program validity check
*
* synopsis	assert(x);
*		
* description	This macro tests a program validity assertion and
*		prints a message on stderr if the assertion is false.
*		The x argument can be any expression that yields a
*		truth value.
*
*		Note that the macro generates no code if the NDEBUG symbol
*		is defined.  Also note that the error message is actually
*		generated by the function _assert.
*
**/
#ifndef NDEBUG
#define assert(x) {if(x); else _assert(#x,__FILE__,__LINE__);}
#else
#define assert(exp)
#endif
#ifdef NARGS
extern void _assert();
#else
extern void _assert(char *, char *, int);
#endif

/**
*
* Define NULL if it's not already defined
*
*/
#ifndef NULL
#define NULL 0L
#endif
#endif
