/***

    The standard assert library uses macros to implements asserts.

    While this is efficient, it is hard to debug.  You cannot set a breakpoint
    in the debugger for standard assert statements.

    This implementation uses a function to implement assert statements, so
    you can set a breakpoint in the debugger.

***/

#undef assert

#ifdef NDEBUG           /* required by ANSI standard */
#define assert(p)          ((void)0)
#else
#define assert(e)       ((e) ? (void)0 : __gpl_assert(__FILE__, __LINE__, #e))

#endif /* NDEBUG */

void __gpl_assert(const char *, int, const char *);


