(svn r2954) - Force assertion message to be output to a messagebox instead to the console which MinGW32 had the habit of doing. Using undocumented (in mingw) __set_error_mode() function.

pull/155/head
Darkvater 19 years ago
parent 3907e46939
commit 3926d006b0

@ -61,13 +61,8 @@ bool LoadLibraryList(Function proc[], const char* dll)
}
#ifdef _MSC_VER
static const char *_exception_string;
static void *_safe_esp;
static char *_crash_msg;
static bool _expanded;
static bool _did_emerg_save;
static int _ident;
#endif
void ShowOSErrorBox(const char *buf)
{
@ -83,6 +78,14 @@ void ShowOSErrorBox(const char *buf)
#endif
}
#ifdef _MSC_VER
static void *_safe_esp;
static char *_crash_msg;
static bool _expanded;
static bool _did_emerg_save;
static int _ident;
typedef struct DebugFileInfo {
uint32 size;
uint32 crc32;
@ -544,15 +547,6 @@ static void Win32InitializeExceptions(void)
SetUnhandledExceptionFilter(ExceptionHandler);
}
#else
/* Get rid of unused variable warnings.. ShowOSErrorBox
* is now used twice, once in MSVC, and once in all other Win
* compilers (cygwin, mingw, etc.) */
void ShowOSErrorBox(const char *buf)
{
MyShowCursor(true);
MessageBoxA(GetActiveWindow(), buf, "Error!", MB_ICONSTOP);
}
#endif
#ifndef __MINGW32__
@ -1064,6 +1058,14 @@ void ShowInfo(const char *str)
}
}
#ifdef __MINGW32__
/* _set_error_mode() constants&function (do not exist in mingw headers) */
#define _OUT_TO_DEFAULT 0
#define _OUT_TO_STDERR 1
#define _OUT_TO_MSGBOX 2
#define _REPORT_ERRMODE 3
int _set_error_mode(int);
#endif
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
@ -1075,8 +1077,7 @@ int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
CreateConsole();
#endif
// make sure we have an autosave folder - Done in DeterminePaths
// CreateDirectory("autosave", NULL);
_set_error_mode(_OUT_TO_MSGBOX); // force assertion output to messagebox
// setup random seed to something quite random
#if defined(_MSC_VER)

Loading…
Cancel
Save