diff options
author | George Hazan <george.hazan@gmail.com> | 2013-01-30 14:56:20 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-01-30 14:56:20 +0000 |
commit | c62ba7b8f551e464e9b217db60a9613baca64f1e (patch) | |
tree | 00aa948b9e52e49642a3b9c5c34f7d9911a5211c /src | |
parent | eb8ce4835cfe80601daaf64b6f842e63b85e62af (diff) |
fix to prevent C++ runtime from shutting down Miranda due to wrong data formats etc
git-svn-id: http://svn.miranda-ng.org/main/trunk@3368 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src')
-rw-r--r-- | src/core/miranda.cpp | 9 | ||||
-rw-r--r-- | src/core/stdchat/src/log.cpp | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/core/miranda.cpp b/src/core/miranda.cpp index 66a3ca8e80..780283b48f 100644 --- a/src/core/miranda.cpp +++ b/src/core/miranda.cpp @@ -208,11 +208,20 @@ void CheckRestart() }
}
+static void crtErrorHandler(const wchar_t*, const wchar_t*, const wchar_t*, unsigned, uintptr_t)
+{
+}
+
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR cmdLine, int)
{
hInst = hInstance;
hMainThreadId = GetCurrentThreadId();
+ _set_invalid_parameter_handler(&crtErrorHandler);
+ #ifdef _DEBUG
+ _CrtSetReportMode(_CRT_ASSERT, 0);
+ #endif
+
CmdLine_Parse(cmdLine);
setlocale(LC_ALL, "");
diff --git a/src/core/stdchat/src/log.cpp b/src/core/stdchat/src/log.cpp index 86b2f41b0a..193c9bb719 100644 --- a/src/core/stdchat/src/log.cpp +++ b/src/core/stdchat/src/log.cpp @@ -318,7 +318,8 @@ static void AddEventToBuffer(char **buffer, int *bufferEnd, int *bufferAlloced, TCHAR* MakeTimeStamp( TCHAR* pszStamp, time_t time)
{
static TCHAR szTime[30];
- _tcsftime(szTime, 29, pszStamp, localtime(&time));
+ if ( !_tcsftime(szTime, SIZEOF(szTime)-1, pszStamp, localtime(&time)))
+ _tcsncpy(szTime, TranslateT("<invalid>"), SIZEOF(szTime));
return szTime;
}
|