#undef GATEG_ABORT
#undef GATEG_DPRINTF
#ifdef GATEG_DEBUG
#	include <setjmp.h>
jmp_buf __gateg_debug_jmp_buf;
#	undef GATEG_ABORT_RET
#	define GATEG_ABORT_RET 64
#	define GATEG_ABORT() \
	do \
	{ \
		fprintf( \
			stderr, "abort in file %s line %d\n", __FILE__, \
			__LINE__); \
		longjmp(__gateg_debug_jmp_buf, GATEG_ABORT_RET); \
		abort(); \
	} while (0)
#	define GATEG_DPRINTF(X) do { fprintf X; } while (0)
#else
#	define GATEG_ABORT() abort()
#	define GATEG_DPRINTF(X) do { } while (0)
#endif