mirror of https://github.com/OpenTTD/OpenTTD
(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.
parent
7164ff86f9
commit
e9401f09a7
35
win32.c
35
win32.c
|
@ -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…
Reference in New Issue