|
| iMatix home page | << | < | > | >> |
SFLVersion 2.11 |
#include "prelude.h" void sys_assert (const char *File, unsigned Line)
Displays an 'assertion failed' message and aborts the program. This function is required by prelude.h if you compile with the DEBUG symbol.
{
#if (defined (__WINDOWS__))
char
line_str [10],
*buffer; /* Formatted error message */
MSG
msg;
Bool
quit;
int
rc; /* MessageBox return code */
snprintf (line_str, sizeof (line_str), "%u", Line);
buffer = xstrcpy (NULL, "Module ", File, ", line ", line_str, NULL);
/* If WM_QUIT is in the queue the message box won't show */
quit = PeekMessage (&msg, NULL, WM_QUIT, WM_QUIT, PM_REMOVE);
rc = MessageBox (NULL, buffer, "Assertion failed!",
MB_TASKMODAL | MB_ICONHAND | MB_ABORTRETRYIGNORE);
mem_free (buffer);
if (quit)
PostQuitMessage (msg.wParam);
if (rc != IDABORT)
return;
#else
fflush (stdout);
fprintf (stderr, "\nAssertion failed: %s, line %u\n", File, Line);
fflush (stderr);
#endif
abort ();
}
| | << | < | > | >> |
|