summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin10/lib/mir_core.libbin48902 -> 50032 bytes
-rw-r--r--bin10/lib/mir_core64.libbin44508 -> 45590 bytes
-rw-r--r--bin11/lib/mir_core.libbin48902 -> 50032 bytes
-rw-r--r--bin11/lib/mir_core64.libbin44508 -> 45590 bytes
-rw-r--r--include/delphi/m_core.inc11
-rw-r--r--include/m_core.h17
-rw-r--r--src/mir_core/mir_core.def5
-rw-r--r--src/mir_core/mir_core_10.vcxproj1
-rw-r--r--src/mir_core/mir_core_10.vcxproj.filters3
-rw-r--r--src/mir_core/mir_core_11.vcxproj1
-rw-r--r--src/mir_core/mir_core_11.vcxproj.filters3
-rw-r--r--src/mir_core/miranda.cpp11
12 files changed, 52 insertions, 0 deletions
diff --git a/bin10/lib/mir_core.lib b/bin10/lib/mir_core.lib
index 732702727a..46ad2b046b 100644
--- a/bin10/lib/mir_core.lib
+++ b/bin10/lib/mir_core.lib
Binary files differ
diff --git a/bin10/lib/mir_core64.lib b/bin10/lib/mir_core64.lib
index e7c7c251df..643c58ccf0 100644
--- a/bin10/lib/mir_core64.lib
+++ b/bin10/lib/mir_core64.lib
Binary files differ
diff --git a/bin11/lib/mir_core.lib b/bin11/lib/mir_core.lib
index b4c0a7d628..d149aa9bb3 100644
--- a/bin11/lib/mir_core.lib
+++ b/bin11/lib/mir_core.lib
Binary files differ
diff --git a/bin11/lib/mir_core64.lib b/bin11/lib/mir_core64.lib
index 6a5eac5e41..61c24cb265 100644
--- a/bin11/lib/mir_core64.lib
+++ b/bin11/lib/mir_core64.lib
Binary files differ
diff --git a/include/delphi/m_core.inc b/include/delphi/m_core.inc
index 0bfd0aec8f..a8ecb0227d 100644
--- a/include/delphi/m_core.inc
+++ b/include/delphi/m_core.inc
@@ -426,6 +426,17 @@ procedure List_ObjCopy(src:PSortedList; dst:PSortedList; size:size_t); stdcall;
///////////////////////////////////////////////////////////////////////////////
+// log functions
+
+function mir_createLog(pszName:PAnsiChar; ptszDescr, ptszFile:PWideChar; options:Cardinal):THandle;stdcall;
+ external CoreDLL name 'mir_createLog';
+
+function mir_writeLogA(hLog:THandle; format:PAnsiChar):int;cdecl;
+ external CoreDLL name 'mir_writeLogA';
+function mir_writeLogW(hLog:THandle; format:PWideChar):int;cdecl;
+ external CoreDLL name 'mir_writeLogW';
+
+///////////////////////////////////////////////////////////////////////////////
// md5 functions
// Define the state of the MD5 Algorithm.
diff --git a/include/m_core.h b/include/m_core.h
index 9c4461b407..a800afe873 100644
--- a/include/m_core.h
+++ b/include/m_core.h
@@ -521,6 +521,17 @@ MIR_CORE_DLL(void) List_Copy(SortedList* s, SortedList* d, size_t itemSiz
MIR_CORE_DLL(void) List_ObjCopy(SortedList* s, SortedList* d, size_t itemSize);
///////////////////////////////////////////////////////////////////////////////
+// logging functions
+
+MIR_CORE_DLL(HANDLE) mir_createLog(const TCHAR *ptszFile, unsigned options);
+
+MIR_C_CORE_DLL(int) mir_writeLogA(HANDLE logger, const char *format, ...);
+MIR_C_CORE_DLL(int) mir_writeLogW(HANDLE logger, const WCHAR *format, ...);
+
+MIR_CORE_DLL(int) mir_writeLogVA(HANDLE logger, const char *format, va_list args);
+MIR_CORE_DLL(int) mir_writeLogVW(HANDLE logger, const WCHAR *format, va_list args);
+
+///////////////////////////////////////////////////////////////////////////////
// md5 functions
/* Define the state of the MD5 Algorithm. */
@@ -719,6 +730,9 @@ __forceinline char* lrtrimp(char *str) { return ltrimp(rtrim(str)); };
#define mir_sntprintf mir_snwprintf
#define mir_vsntprintf mir_vsnwprintf
+
+ #define mir_writeLogT mir_writeLogW
+ #define mir_writeLogVT mir_writeLogVW
#else
#define mir_t2a(s) mir_strdup(s)
#define mir_a2t(s) mir_strdup(s)
@@ -743,6 +757,9 @@ __forceinline char* lrtrimp(char *str) { return ltrimp(rtrim(str)); };
#define mir_sntprintf mir_snprintf
#define mir_vsntprintf mir_vsnprintf
+
+ #define mir_writeLogT mir_writeLogA
+ #define mir_writeLogVT mir_writeLogVA
#endif
MIR_CORE_DLL(WCHAR*) mir_a2u_cp(const char* src, int codepage);
diff --git a/src/mir_core/mir_core.def b/src/mir_core/mir_core.def
index 32b1adecd8..c820c2dd59 100644
--- a/src/mir_core/mir_core.def
+++ b/src/mir_core/mir_core.def
@@ -222,3 +222,8 @@ ProtoGetAvatarFormat @219
ProtoGetAvatarExtension @220
ProtoGetBufferFormat @221
ProtoGetAvatarFileFormat @222
+mir_createLog @223
+mir_writeLogA @224
+mir_writeLogW @225
+mir_writeLogVA @226
+mir_writeLogVW @227
diff --git a/src/mir_core/mir_core_10.vcxproj b/src/mir_core/mir_core_10.vcxproj
index d8c3514a63..0b5efe22f5 100644
--- a/src/mir_core/mir_core_10.vcxproj
+++ b/src/mir_core/mir_core_10.vcxproj
@@ -98,6 +98,7 @@
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\commonheaders.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\commonheaders.h</PrecompiledHeaderFile>
</ClCompile>
+ <ClCompile Include="logger.cpp" />
<ClCompile Include="protos.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
diff --git a/src/mir_core/mir_core_10.vcxproj.filters b/src/mir_core/mir_core_10.vcxproj.filters
index 6d0a431685..1fafc175f9 100644
--- a/src/mir_core/mir_core_10.vcxproj.filters
+++ b/src/mir_core/mir_core_10.vcxproj.filters
@@ -97,6 +97,9 @@
<ClCompile Include="json\libJSON.cpp">
<Filter>Source Files\json</Filter>
</ClCompile>
+ <ClCompile Include="logger.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="commonheaders.h">
diff --git a/src/mir_core/mir_core_11.vcxproj b/src/mir_core/mir_core_11.vcxproj
index f65e731e1d..e30f2719cc 100644
--- a/src/mir_core/mir_core_11.vcxproj
+++ b/src/mir_core/mir_core_11.vcxproj
@@ -93,6 +93,7 @@
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../commonheaders.h</PrecompiledHeaderFile>
<PrecompiledHeaderFile Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../commonheaders.h</PrecompiledHeaderFile>
</ClCompile>
+ <ClCompile Include="logger.cpp" />
<ClCompile Include="protos.cpp" />
<ClCompile Include="stdafx.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
diff --git a/src/mir_core/mir_core_11.vcxproj.filters b/src/mir_core/mir_core_11.vcxproj.filters
index 5603f49551..75eaf973e4 100644
--- a/src/mir_core/mir_core_11.vcxproj.filters
+++ b/src/mir_core/mir_core_11.vcxproj.filters
@@ -94,6 +94,9 @@
<ClCompile Include="json\libJSON.cpp">
<Filter>Source Files\json</Filter>
</ClCompile>
+ <ClCompile Include="logger.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="commonheaders.h">
diff --git a/src/mir_core/miranda.cpp b/src/mir_core/miranda.cpp
index 571bbb811a..1508e3f4e7 100644
--- a/src/mir_core/miranda.cpp
+++ b/src/mir_core/miranda.cpp
@@ -29,6 +29,10 @@ HWND hAPCWindow = NULL;
int InitPathUtils(void);
void (*RecalculateTime)(void);
+void CheckLogs();
+void InitLogs();
+void UninitLogs();
+
int hLangpack = 0;
HINSTANCE hInst = 0;
@@ -47,8 +51,12 @@ static LRESULT CALLBACK APCWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
return 0;
}
+ if (msg == WM_TIMER)
+ CheckLogs();
+
if (msg == WM_TIMECHANGE && RecalculateTime)
RecalculateTime();
+
return DefWindowProc(hwnd, msg, wParam, lParam);
}
@@ -68,6 +76,7 @@ static void LoadCoreModule(void)
hAPCWindow = CreateWindowEx(0, _T("STATIC"), NULL, 0, 0, 0, 0, 0, NULL, NULL, NULL, NULL);
SetWindowLongPtr(hAPCWindow, GWLP_WNDPROC, (LONG_PTR)APCWndProc);
+ SetTimer(hAPCWindow, 1, 60*1000, NULL);
hStackMutex = CreateMutex(NULL, FALSE, NULL);
hThreadQueueEmpty = CreateEvent(NULL, TRUE, TRUE, NULL);
@@ -79,6 +88,7 @@ static void LoadCoreModule(void)
RecalculateTime = (void (*)()) GetProcAddress(mirInst, "RecalculateTime");
InitPathUtils();
+ InitLogs();
InitialiseModularEngine();
InitProtocols();
}
@@ -93,6 +103,7 @@ MIR_CORE_DLL(void) UnloadCoreModule(void)
UninitSubclassing();
UninitProtocols();
DestroyModularEngine();
+ UninitLogs();
UnloadLangPackModule();
}