summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2012-06-29 16:37:08 +0000
committerGeorge Hazan <george.hazan@gmail.com>2012-06-29 16:37:08 +0000
commit67f2d89c164c7adccdee065da1caac319d528b50 (patch)
tree96d5d1d87776a9fa48fd8fea33312d35aa6b1d77
parentc1840425166576b1cf187076a9344a78a20375b6 (diff)
- yet another crash fix on exit;
- events speed-up - quick ICQ exit git-svn-id: http://svn.miranda-ng.org/main/trunk@687 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
-rw-r--r--bin10/lib/mir_core.libbin28166 -> 28382 bytes
-rw-r--r--include/m_core.h2
-rw-r--r--plugins/Mir_core/mir_core.def2
-rw-r--r--plugins/Mir_core/mir_core_10.vcxproj15
-rw-r--r--plugins/Mir_core/mir_core_10.vcxproj.filters3
-rw-r--r--plugins/Mir_core/miranda.cpp319
-rw-r--r--plugins/Mir_core/miranda.h4
-rw-r--r--plugins/Mir_core/modules.cpp146
-rw-r--r--plugins/Mir_core/threads.cpp372
-rw-r--r--protocols/IcqOscarJ/UI/askauthentication.cpp9
-rw-r--r--protocols/IcqOscarJ/UI/askauthentication.h9
-rw-r--r--protocols/IcqOscarJ/UI/loginpassword.cpp9
-rw-r--r--protocols/IcqOscarJ/UI/loginpassword.h9
-rw-r--r--protocols/IcqOscarJ/UI/userinfotab.cpp9
-rw-r--r--protocols/IcqOscarJ/UI/userinfotab.h8
-rw-r--r--protocols/IcqOscarJ/capabilities.cpp9
-rw-r--r--protocols/IcqOscarJ/capabilities.h9
-rw-r--r--protocols/IcqOscarJ/chan_01login.cpp9
-rw-r--r--protocols/IcqOscarJ/chan_02data.cpp9
-rw-r--r--protocols/IcqOscarJ/chan_03error.cpp9
-rw-r--r--protocols/IcqOscarJ/chan_04close.cpp13
-rw-r--r--protocols/IcqOscarJ/chan_05ping.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/changeinfo.h9
-rw-r--r--protocols/IcqOscarJ/changeinfo/constants.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/db.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/dlgproc.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/editlist.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/editstring.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/main.cpp9
-rw-r--r--protocols/IcqOscarJ/changeinfo/upload.cpp9
-rw-r--r--protocols/IcqOscarJ/channels.h9
-rw-r--r--protocols/IcqOscarJ/cookies.cpp9
-rw-r--r--protocols/IcqOscarJ/cookies.h9
-rw-r--r--protocols/IcqOscarJ/directpackets.cpp9
-rw-r--r--protocols/IcqOscarJ/directpackets.h9
-rw-r--r--protocols/IcqOscarJ/fam_01service.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_02location.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_03buddy.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_04message.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_09bos.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_0alookup.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_0bstatus.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_13servclist.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_15icqserver.cpp9
-rw-r--r--protocols/IcqOscarJ/fam_17signon.cpp9
-rw-r--r--protocols/IcqOscarJ/families.h9
-rw-r--r--protocols/IcqOscarJ/globals.h9
-rw-r--r--protocols/IcqOscarJ/guids.h9
-rw-r--r--protocols/IcqOscarJ/i18n.cpp9
-rw-r--r--protocols/IcqOscarJ/i18n.h9
-rw-r--r--protocols/IcqOscarJ/iconlib.cpp9
-rw-r--r--protocols/IcqOscarJ/iconlib.h9
-rw-r--r--protocols/IcqOscarJ/icq_advsearch.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_advsearch.h9
-rw-r--r--protocols/IcqOscarJ/icq_avatar.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_avatar.h9
-rw-r--r--protocols/IcqOscarJ/icq_clients.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_constants.h9
-rw-r--r--protocols/IcqOscarJ/icq_db.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_db.h9
-rw-r--r--protocols/IcqOscarJ/icq_direct.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_direct.h9
-rw-r--r--protocols/IcqOscarJ/icq_directmsg.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_fieldnames.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_fieldnames.h9
-rw-r--r--protocols/IcqOscarJ/icq_filerequests.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_filetransfer.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_firstrun.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_http.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_http.h9
-rw-r--r--protocols/IcqOscarJ/icq_infoupdate.cpp14
-rw-r--r--protocols/IcqOscarJ/icq_infoupdate.h8
-rw-r--r--protocols/IcqOscarJ/icq_menu.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_opts.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_opts.h9
-rw-r--r--protocols/IcqOscarJ/icq_packet.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_packet.h9
-rw-r--r--protocols/IcqOscarJ/icq_popups.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_popups.h9
-rw-r--r--protocols/IcqOscarJ/icq_proto.cpp22
-rw-r--r--protocols/IcqOscarJ/icq_proto.h9
-rw-r--r--protocols/IcqOscarJ/icq_rates.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_rates.h9
-rw-r--r--protocols/IcqOscarJ/icq_server.cpp13
-rw-r--r--protocols/IcqOscarJ/icq_server.h9
-rw-r--r--protocols/IcqOscarJ/icq_servlist.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_servlist.h9
-rw-r--r--protocols/IcqOscarJ/icq_uploadui.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_uploadui.h8
-rw-r--r--protocols/IcqOscarJ/icq_xstatus.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_xtraz.cpp9
-rw-r--r--protocols/IcqOscarJ/icq_xtraz.h9
-rw-r--r--protocols/IcqOscarJ/icqosc_svcs.cpp9
-rw-r--r--protocols/IcqOscarJ/icqosc_svcs.h9
-rw-r--r--protocols/IcqOscarJ/icqoscar.cpp9
-rw-r--r--protocols/IcqOscarJ/icqoscar.h9
-rw-r--r--protocols/IcqOscarJ/init.cpp9
-rw-r--r--protocols/IcqOscarJ/init.h9
-rw-r--r--protocols/IcqOscarJ/log.cpp9
-rw-r--r--protocols/IcqOscarJ/log.h9
-rw-r--r--protocols/IcqOscarJ/oscar_filetransfer.cpp9
-rw-r--r--protocols/IcqOscarJ/oscar_filetransfer.h9
-rw-r--r--protocols/IcqOscarJ/stdpackets.cpp9
-rw-r--r--protocols/IcqOscarJ/stdpackets.h9
-rw-r--r--protocols/IcqOscarJ/tlv.cpp9
-rw-r--r--protocols/IcqOscarJ/tlv.h9
-rw-r--r--protocols/IcqOscarJ/utilities.cpp9
-rw-r--r--protocols/IcqOscarJ/utilities.h9
-rw-r--r--src/core/miranda.cpp4
109 files changed, 589 insertions, 1192 deletions
diff --git a/bin10/lib/mir_core.lib b/bin10/lib/mir_core.lib
index 244a6176b9..a177c6a94a 100644
--- a/bin10/lib/mir_core.lib
+++ b/bin10/lib/mir_core.lib
Binary files differ
diff --git a/include/m_core.h b/include/m_core.h
index 14c72c0a37..a25c60e400 100644
--- a/include/m_core.h
+++ b/include/m_core.h
@@ -458,6 +458,8 @@ __inline HANDLE mir_forkthreadowner(pThreadFuncOwner aFunc, void* owner, void* a
{ return (HANDLE)forkthreadex(NULL, 0, (pThreadFuncEx)aFunc, owner, arg, pThreadID);
}
+MIR_CORE_DLL(void) Thread_SetName(DWORD dwThreadID, const char *szThreadName);
+
MIR_CORE_DLL(void) KillObjectThreads(void* pObject);
///////////////////////////////////////////////////////////////////////////////
diff --git a/plugins/Mir_core/mir_core.def b/plugins/Mir_core/mir_core.def
index 7d998c0d14..e0cefde13b 100644
--- a/plugins/Mir_core/mir_core.def
+++ b/plugins/Mir_core/mir_core.def
@@ -124,3 +124,5 @@ db_set_utf @120
db_set_w @121
db_set_ws @122
UnloadCoreModule @123
+Thread_SetName @124
+
diff --git a/plugins/Mir_core/mir_core_10.vcxproj b/plugins/Mir_core/mir_core_10.vcxproj
index 68b4adf4d8..6600013e1a 100644
--- a/plugins/Mir_core/mir_core_10.vcxproj
+++ b/plugins/Mir_core/mir_core_10.vcxproj
@@ -43,6 +43,7 @@
<ClCompile Include="modules.cpp" />
<ClCompile Include="path.cpp" />
<ClCompile Include="sha1.cpp" />
+ <ClCompile Include="threads.cpp" />
<ClCompile Include="utf.cpp" />
<ClCompile Include="utils.cpp" />
</ItemGroup>
@@ -124,6 +125,13 @@
</AdditionalLibraryDirectories>
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
</Link>
+ <CustomBuildStep>
+ <Command>
+ </Command>
+ </CustomBuildStep>
+ <PostBuildEvent>
+ <Command>copy /Y $(IntDir)$(TargetName).lib $(SolutionDir)\lib</Command>
+ </PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
@@ -185,6 +193,13 @@
</AdditionalLibraryDirectories>
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
</Link>
+ <CustomBuildStep>
+ <Command>
+ </Command>
+ </CustomBuildStep>
+ <PostBuildEvent>
+ <Command>copy /Y $(IntDir)$(TargetName).lib $(SolutionDir)\lib</Command>
+ </PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
diff --git a/plugins/Mir_core/mir_core_10.vcxproj.filters b/plugins/Mir_core/mir_core_10.vcxproj.filters
index 1aca9fda03..27b6a42604 100644
--- a/plugins/Mir_core/mir_core_10.vcxproj.filters
+++ b/plugins/Mir_core/mir_core_10.vcxproj.filters
@@ -46,6 +46,9 @@
<ClCompile Include="db.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="threads.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="commonheaders.h">
diff --git a/plugins/Mir_core/miranda.cpp b/plugins/Mir_core/miranda.cpp
index 910b204292..b059e11cb7 100644
--- a/plugins/Mir_core/miranda.cpp
+++ b/plugins/Mir_core/miranda.cpp
@@ -29,326 +29,10 @@ HWND hAPCWindow = NULL;
int InitPathUtils(void);
void (*RecalculateTime)(void);
-HANDLE hStackMutex, hThreadQueueEmpty;
int hLangpack = 0;
HINSTANCE hInst = 0;
-/////////////////////////////////////////////////////////////////////////////////////////
-// exception handling
-
-static DWORD __cdecl sttDefaultFilter(DWORD, EXCEPTION_POINTERS*)
-{
- return EXCEPTION_EXECUTE_HANDLER;
-}
-
-pfnExceptionFilter pMirandaExceptFilter = sttDefaultFilter;
-
-MIR_CORE_DLL(pfnExceptionFilter) GetExceptionFilter()
-{
- return pMirandaExceptFilter;
-}
-
-MIR_CORE_DLL(pfnExceptionFilter) SetExceptionFilter(pfnExceptionFilter pMirandaExceptFilter)
-{
- pfnExceptionFilter oldOne = pMirandaExceptFilter;
- if (pMirandaExceptFilter != 0)
- pMirandaExceptFilter = pMirandaExceptFilter;
- return oldOne;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// thread support functions
-
-struct THREAD_WAIT_ENTRY
-{
- DWORD dwThreadId; // valid if hThread isn't signalled
- HANDLE hThread;
- HINSTANCE hOwner;
- void* pObject;
- //PVOID addr;
-};
-
-static LIST<THREAD_WAIT_ENTRY> threads(10, NumericKeySortT);
-
-struct FORK_ARG {
- HANDLE hEvent;
- pThreadFunc threadcode;
- pThreadFuncEx threadcodeex;
- void *arg, *owner;
-};
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// forkthread - starts a new thread
-
-void __cdecl forkthread_r(void * arg)
-{
- struct FORK_ARG * fa = (struct FORK_ARG *) arg;
- void (*callercode)(void*)=fa->threadcode;
- void * cookie=fa->arg;
- Thread_Push(( HINSTANCE)callercode);
- SetEvent(fa->hEvent);
- __try
- {
- callercode(cookie);
- }
- __except(pMirandaExceptFilter(GetExceptionCode(), GetExceptionInformation()))
- {
- }
-
- SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
- Thread_Pop();
- return;
-}
-
-MIR_CORE_DLL(UINT_PTR) forkthread( void (__cdecl *threadcode)(void*), unsigned long stacksize, void *arg)
-{
- UINT_PTR rc;
- struct FORK_ARG fa;
- fa.hEvent=CreateEvent(NULL, FALSE, FALSE, NULL);
- fa.threadcode=threadcode;
- fa.arg=arg;
- rc=_beginthread(forkthread_r, stacksize, &fa);
- if ((UINT_PTR)-1L != rc)
- WaitForSingleObject(fa.hEvent, INFINITE);
-
- CloseHandle(fa.hEvent);
- return rc;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// forkthreadex - starts a new thread with the extended info and returns the thread id
-
-unsigned __stdcall forkthreadex_r(void * arg)
-{
- struct FORK_ARG *fa = (struct FORK_ARG *)arg;
- pThreadFuncEx threadcode = fa->threadcodeex;
- pThreadFuncOwner threadcodeex = (pThreadFuncOwner)fa->threadcodeex;
- void *cookie = fa->arg;
- void *owner = fa->owner;
- unsigned long rc = 0;
-
- Thread_Push((HINSTANCE)threadcode, fa->owner);
- SetEvent(fa->hEvent);
- __try
- {
- if (owner)
- rc = threadcodeex(owner, cookie);
- else
- rc = threadcode(cookie);
- }
- __except(pMirandaExceptFilter(GetExceptionCode(), GetExceptionInformation()))
- {
- }
-
- SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
- Thread_Pop();
- return rc;
-}
-
-MIR_CORE_DLL(UINT_PTR) forkthreadex(
- void *sec,
- unsigned stacksize,
- unsigned (__stdcall *threadcode)(void*),
- void* owner,
- void *arg,
- unsigned *thraddr)
-{
- UINT_PTR rc;
- struct FORK_ARG fa = { 0 };
- fa.threadcodeex = threadcode;
- fa.arg = arg;
- fa.owner = owner;
- fa.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
- rc = _beginthreadex(sec, stacksize, forkthreadex_r, (void *)&fa, 0, thraddr);
- if (rc)
- WaitForSingleObject(fa.hEvent, INFINITE);
-
- CloseHandle(fa.hEvent);
- return rc;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// APC and mutex functions
-
-static void __stdcall DummyAPCFunc(ULONG_PTR)
-{
- /* called in the context of thread that cleared it's APC queue */
- return;
-}
-
-static int MirandaWaitForMutex(HANDLE hEvent)
-{
- for (;;) {
- // will get WAIT_IO_COMPLETE for QueueUserAPC() which isnt a result
- DWORD rc = MsgWaitForMultipleObjectsEx(1, &hEvent, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE);
- if (rc == WAIT_OBJECT_0 + 1) {
- MSG msg;
- while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
- if (IsDialogMessage(msg.hwnd, &msg)) continue;
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
- else if (rc == WAIT_OBJECT_0) { // got object
- return 1;
- }
- else if (rc == WAIT_ABANDONED_0 || rc == WAIT_FAILED)
- return 0;
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-static void CALLBACK KillAllThreads(HWND, UINT, UINT_PTR, DWORD)
-{
- if ( MirandaWaitForMutex(hStackMutex)) {
- for (int j=0; j < threads.getCount(); j++) {
- THREAD_WAIT_ENTRY* p = threads[j];
- char szModuleName[ MAX_PATH ];
- GetModuleFileNameA(p->hOwner, szModuleName, sizeof(szModuleName));
- TerminateThread(p->hThread, 9999);
- CloseHandle(p->hThread);
- mir_free(p);
- }
-
- threads.destroy();
-
- ReleaseMutex(hStackMutex);
- SetEvent(hThreadQueueEmpty);
- }
-}
-
-MIR_CORE_DLL(void) KillObjectThreads(void* owner)
-{
- if (owner == NULL)
- return;
-
- WaitForSingleObject(hStackMutex, INFINITE);
-
- HANDLE* threadPool = (HANDLE*)alloca(threads.getCount()*sizeof(HANDLE));
- int threadCount = 0;
-
- for (int j = threads.getCount(); j--;) {
- THREAD_WAIT_ENTRY* p = threads[j];
- if (p->pObject == owner)
- threadPool[ threadCount++ ] = p->hThread;
- }
- ReleaseMutex(hStackMutex);
-
- // is there anything to kill?
- if (threadCount > 0) {
- if ( WaitForMultipleObjects(threadCount, threadPool, TRUE, 5000) == WAIT_TIMEOUT) {
- // forcibly kill all remaining threads after 5 secs
- WaitForSingleObject(hStackMutex, INFINITE);
- for (int j = threads.getCount()-1; j >= 0; j--) {
- THREAD_WAIT_ENTRY* p = threads[j];
- if (p->pObject == owner) {
- TerminateThread(p->hThread, 9999);
- CloseHandle(p->hThread);
- threads.remove(j);
- mir_free(p);
- }
- }
- ReleaseMutex(hStackMutex);
- }
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-MIR_CORE_DLL(void) Thread_Wait(void)
-{
- // acquire the list and wake up any alertable threads
- if ( MirandaWaitForMutex(hStackMutex)) {
- int j;
- for (j=0; j < threads.getCount(); j++)
- QueueUserAPC(DummyAPCFunc, threads[j]->hThread, 0);
- ReleaseMutex(hStackMutex);
- }
-
- // give all unclosed threads 5 seconds to close
- SetTimer(NULL, 0, 5000, KillAllThreads);
-
- // wait til the thread list is empty
- MirandaWaitForMutex(hThreadQueueEmpty);
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-typedef LONG (WINAPI *pNtQIT)(HANDLE, LONG, PVOID, ULONG, PULONG);
-#define ThreadQuerySetWin32StartAddress 9
-
-static void* GetCurrentThreadEntryPoint()
-{
- LONG ntStatus;
- HANDLE hDupHandle, hCurrentProcess;
- DWORD_PTR dwStartAddress;
-
- pNtQIT NtQueryInformationThread = (pNtQIT)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "NtQueryInformationThread" );
- if(NtQueryInformationThread == NULL) return 0;
-
- hCurrentProcess = GetCurrentProcess();
- if(!DuplicateHandle(hCurrentProcess, GetCurrentThread(), hCurrentProcess, &hDupHandle, THREAD_QUERY_INFORMATION, FALSE, 0)){
- SetLastError(ERROR_ACCESS_DENIED);
- return NULL;
- }
- ntStatus = NtQueryInformationThread(hDupHandle, ThreadQuerySetWin32StartAddress, &dwStartAddress, sizeof(DWORD_PTR), NULL);
- CloseHandle(hDupHandle);
-
- if(ntStatus != ERROR_SUCCESS) return 0;
- return ( void* )dwStartAddress;
-}
-
-MIR_CORE_DLL(INT_PTR) Thread_Push(HINSTANCE hInst, void* pOwner)
-{
- ResetEvent(hThreadQueueEmpty); // thread list is not empty
- if ( WaitForSingleObject(hStackMutex, INFINITE) == WAIT_OBJECT_0) {
- THREAD_WAIT_ENTRY* p = (THREAD_WAIT_ENTRY*)mir_calloc(sizeof(THREAD_WAIT_ENTRY));
-
- DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &p->hThread, 0, FALSE, DUPLICATE_SAME_ACCESS);
- p->dwThreadId = GetCurrentThreadId();
- p->pObject = pOwner;
- if (pluginListAddr.getIndex(hInst) != -1)
- p->hOwner = hInst;
- else
- p->hOwner = GetInstByAddress(( hInst != NULL ) ? (PVOID)hInst : GetCurrentThreadEntryPoint());
-
- threads.insert(p);
-
- ReleaseMutex(hStackMutex);
- }
- return 0;
-}
-
-/////////////////////////////////////////////////////////////////////////////////////////
-
-MIR_CORE_DLL(INT_PTR) Thread_Pop()
-{
- if ( WaitForSingleObject(hStackMutex, INFINITE) == WAIT_OBJECT_0) {
- DWORD dwThreadId = GetCurrentThreadId();
- for (int j=0; j < threads.getCount(); j++) {
- THREAD_WAIT_ENTRY* p = threads[j];
- if (p->dwThreadId == dwThreadId) {
- SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
- CloseHandle(p->hThread);
- threads.remove(j);
- mir_free(p);
-
- if ( !threads.getCount()) {
- threads.destroy();
- ReleaseMutex(hStackMutex);
- SetEvent(hThreadQueueEmpty); // thread list is empty now
- return 0;
- }
-
- ReleaseMutex(hStackMutex);
- return 0;
- }
- }
- ReleaseMutex(hStackMutex);
- }
- return 1;
-}
+HANDLE hStackMutex, hThreadQueueEmpty;
/////////////////////////////////////////////////////////////////////////////////////////
// module init
@@ -378,6 +62,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);
hStackMutex = CreateMutex(NULL, FALSE, NULL);
+ hThreadQueueEmpty = CreateEvent(NULL, TRUE, TRUE, NULL);
#ifdef WIN64
HMODULE mirInst = GetModuleHandleA("miranda64.exe");
diff --git a/plugins/Mir_core/miranda.h b/plugins/Mir_core/miranda.h
index 65140260c1..71c0804fd1 100644
--- a/plugins/Mir_core/miranda.h
+++ b/plugins/Mir_core/miranda.h
@@ -43,6 +43,7 @@ int InitPathUtils(void);
extern HINSTANCE hInst;
extern HWND hAPCWindow;
+extern HANDLE hStackMutex, hThreadQueueEmpty;
/**** modules.cpp **********************************************************************/
@@ -68,6 +69,8 @@ struct THookSubscriber
};
};
+#define HOOK_SECRET_SIGNATURE 0xDEADBABA
+
struct THook
{
char name[ MAXMODULELABELLENGTH ];
@@ -75,6 +78,7 @@ struct THook
int subscriberCount;
THookSubscriber* subscriber;
MIRANDAHOOK pfnHook;
+ DWORD secretSignature;
CRITICAL_SECTION csHook;
};
diff --git a/plugins/Mir_core/modules.cpp b/plugins/Mir_core/modules.cpp
index f451a70f60..bd8636ccb8 100644
--- a/plugins/Mir_core/modules.cpp
+++ b/plugins/Mir_core/modules.cpp
@@ -109,17 +109,18 @@ MIR_CORE_DLL(HANDLE) CreateHookableEvent(const char *name)
return NULL;
}
- THook* ret = (THook*)mir_alloc(sizeof(THook));
- strncpy(ret->name, name, sizeof(ret->name)); ret->name[ MAXMODULELABELLENGTH-1 ] = 0;
- ret->id = hookId++;
- ret->subscriberCount = 0;
- ret->subscriber = NULL;
- ret->pfnHook = NULL;
- InitializeCriticalSection(&ret->csHook);
- hooks.insert(ret);
+ THook* newItem = (THook*)mir_alloc(sizeof(THook));
+ strncpy(newItem->name, name, sizeof(newItem->name)); newItem->name[ MAXMODULELABELLENGTH-1 ] = 0;
+ newItem->id = hookId++;
+ newItem->subscriberCount = 0;
+ newItem->subscriber = NULL;
+ newItem->pfnHook = NULL;
+ newItem->secretSignature = HOOK_SECRET_SIGNATURE;
+ InitializeCriticalSection(&newItem->csHook);
+ hooks.insert(newItem);
LeaveCriticalSection(&csHooks);
- return (HANDLE)ret;
+ return (HANDLE)newItem;
}
MIR_CORE_DLL(int) DestroyHookableEvent(HANDLE hEvent)
@@ -135,6 +136,7 @@ MIR_CORE_DLL(int) DestroyHookableEvent(HANDLE hEvent)
}
THook* p = hooks[idx];
+ p->secretSignature = 0;
if (p->subscriberCount) {
mir_free(p->subscriber);
p->subscriber = NULL;
@@ -223,38 +225,44 @@ MIR_CORE_DLL(int) CallHookSubscribers(HANDLE hEvent, WPARAM wParam, LPARAM lPara
return returnVal;
}
-static int checkHook(HANDLE hHook)
+static bool checkHook(HANDLE hHook)
{
- if (hHook == NULL)
- return -1;
-
- EnterCriticalSection(&csHooks);
- if (pLastHook != hHook || !pLastHook) {
- if (hooks.getIndex((THook*)hHook) == -1) {
- LeaveCriticalSection(&csHooks);
- return -1;
- }
- pLastHook = (THook*)hHook;
+ THook* p = (THook*)hHook;
+ if (p == NULL)
+ return false;
+
+ bool ret;
+ __try
+ {
+ if (p->secretSignature != HOOK_SECRET_SIGNATURE)
+ ret = false;
+ else if (p->subscriberCount == 0)
+ ret = false;
+ else
+ ret = true;
}
- LeaveCriticalSection(&csHooks);
- return 0;
+ __except(EXCEPTION_EXECUTE_HANDLER)
+ {
+ ret = false;
+ }
+
+ return ret;
}
static void CALLBACK HookToMainAPCFunc(ULONG_PTR dwParam)
{
THookToMainThreadItem* item = (THookToMainThreadItem*)dwParam;
-
- if (checkHook(item->hook) == -1)
- item->result = -1;
- else
- item->result = CallHookSubscribers(item->hook, item->wParam, item->lParam);
+ item->result = CallHookSubscribers(item->hook, item->wParam, item->lParam);
SetEvent(item->hDoneEvent);
}
MIR_CORE_DLL(int) NotifyEventHooks(HANDLE hEvent, WPARAM wParam, LPARAM lParam)
{
+ if ( !checkHook(hEvent))
+ return -1;
+
if ( GetCurrentThreadId() == mainThreadId)
- return (checkHook(hEvent) == -1) ? -1 : CallHookSubscribers(hEvent, wParam, lParam);
+ return CallHookSubscribers(hEvent, wParam, lParam);
mir_ptr<THookToMainThreadItem> item;
item->hDoneEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
@@ -267,11 +275,8 @@ MIR_CORE_DLL(int) NotifyEventHooks(HANDLE hEvent, WPARAM wParam, LPARAM lParam)
static HANDLE HookEventInt(int type, const char* name, MIRANDAHOOK hookProc, void* object, LPARAM lParam)
{
- int idx;
- THook* p;
- HANDLE ret;
-
EnterCriticalSection(&csHooks);
+ int idx;
if ((idx = hooks.getIndex((THook*)name)) == -1) {
#ifdef _DEBUG
OutputDebugStringA("Attempt to hook: \t");
@@ -282,7 +287,7 @@ static HANDLE HookEventInt(int type, const char* name, MIRANDAHOOK hookProc, voi
return NULL;
}
- p = hooks[ idx ];
+ THook* p = hooks[ idx ];
p->subscriber = (THookSubscriber*)mir_realloc(p->subscriber, sizeof(THookSubscriber)*(p->subscriberCount+1));
p->subscriber[ p->subscriberCount ].type = type;
p->subscriber[ p->subscriberCount ].pfnHook = hookProc;
@@ -291,7 +296,7 @@ static HANDLE HookEventInt(int type, const char* name, MIRANDAHOOK hookProc, voi
p->subscriber[ p->subscriberCount ].hOwner = GetInstByAddress(hookProc);
p->subscriberCount++;
- ret = (HANDLE)((p->id << 16) | p->subscriberCount);
+ HANDLE ret = (HANDLE)((p->id << 16) | p->subscriberCount);
LeaveCriticalSection(&csHooks);
return ret;
}
@@ -318,11 +323,9 @@ MIR_CORE_DLL(HANDLE) HookEventObjParam(const char* name, MIRANDAHOOKOBJPARAM hoo
MIR_CORE_DLL(HANDLE) HookEventMessage(const char* name, HWND hwnd, UINT message)
{
- int idx;
- THook* p;
- HANDLE ret;
-
EnterCriticalSection(&csHooks);
+
+ int idx;
if ((idx = hooks.getIndex((THook*)name)) == -1) {
#ifdef _DEBUG
MessageBoxA(NULL, "Attempt to hook non-existant event", name, MB_OK);
@@ -331,34 +334,34 @@ MIR_CORE_DLL(HANDLE) HookEventMessage(const char* name, HWND hwnd, UINT message)
return NULL;
}
- p = hooks[ idx ];
+ THook* p = hooks[ idx ];
p->subscriber = (THookSubscriber*)mir_realloc(p->subscriber, sizeof(THookSubscriber)*(p->subscriberCount+1));
p->subscriber[ p->subscriberCount ].type = 5;
p->subscriber[ p->subscriberCount ].hwnd = hwnd;
p->subscriber[ p->subscriberCount ].message = message;
p->subscriberCount++;
- ret = (HANDLE)((p->id << 16) | p->subscriberCount);
+ HANDLE ret = (HANDLE)((p->id << 16) | p->subscriberCount);
LeaveCriticalSection(&csHooks);
return ret;
}
MIR_CORE_DLL(int) UnhookEvent(HANDLE hHook)
{
- int i;
- THook* p = NULL;
+ if (hHook == NULL)
+ return 0;
int hookId = (int)hHook >> 16;
int subscriberId = ((int)hHook & 0xFFFF) - 1;
- if (hHook == NULL) return 0;
-
EnterCriticalSection(&csHooks);
- for (i = 0; i < hooks.getCount(); i++) {
+
+ THook* p = NULL;
+ for (int i = 0; i < hooks.getCount(); i++)
if (hooks[i]->id == hookId) {
p = hooks[i];
break;
- } }
+ }
if (p == NULL) {
LeaveCriticalSection(&csHooks);
@@ -385,35 +388,36 @@ MIR_CORE_DLL(int) UnhookEvent(HANDLE hHook)
MIR_CORE_DLL(void) KillModuleEventHooks(HINSTANCE hInst)
{
- int i, j;
-
EnterCriticalSection(&csHooks);
- for (i = hooks.getCount()-1; i >= 0; i--) {
+
+ for (int i = hooks.getCount()-1; i >= 0; i--) {
if (hooks[i]->subscriberCount == 0)
continue;
- for (j = hooks[i]->subscriberCount-1; j >= 0; j--) {
- if (hooks[i]->subscriber[j].hOwner == hInst) {
- char szModuleName[ MAX_PATH ];
- GetModuleFileNameA(hooks[i]->subscriber[j].hOwner, szModuleName, sizeof(szModuleName));
- UnhookEvent((HANDLE)((hooks[i]->id << 16) + j + 1));
- if (hooks[i]->subscriberCount == 0)
- break;
- } } }
+ for (int j = hooks[i]->subscriberCount-1; j >= 0; j--) {
+ if (hooks[i]->subscriber[j].hOwner != hInst)
+ continue;
+
+ char szModuleName[ MAX_PATH ];
+ GetModuleFileNameA(hooks[i]->subscriber[j].hOwner, szModuleName, sizeof(szModuleName));
+ UnhookEvent((HANDLE)((hooks[i]->id << 16) + j + 1));
+ if (hooks[i]->subscriberCount == 0)
+ break;
+ }
+ }
LeaveCriticalSection(&csHooks);
}
MIR_CORE_DLL(void) KillObjectEventHooks(void* pObject)
{
- int i, j;
-
EnterCriticalSection(&csHooks);
- for (i = hooks.getCount()-1; i >= 0; i--) {
+
+ for (int i = hooks.getCount()-1; i >= 0; i--) {
if (hooks[i]->subscriberCount == 0)
continue;
- for (j = hooks[i]->subscriberCount-1; j >= 0; j--) {
+ for (int j = hooks[i]->subscriberCount-1; j >= 0; j--) {
if (hooks[i]->subscriber[j].object == pObject) {
UnhookEvent((HANDLE)((hooks[i]->id << 16) + j + 1));
if (hooks[i]->subscriberCount == 0)
@@ -551,12 +555,14 @@ static void CALLBACK CallServiceToMainAPCFunc(ULONG_PTR dwParam)
MIR_CORE_DLL(INT_PTR) CallServiceSync(const char *name, WPARAM wParam, LPARAM lParam)
{
- if (name == NULL) return CALLSERVICE_NOTFOUND;
+ if (name == NULL)
+ return CALLSERVICE_NOTFOUND;
+
// the service is looked up within the main thread, since the time it takes
// for the APC queue to clear the service being called maybe removed.
// even thou it may exists before the call, the critsec can't be locked between calls.
if (GetCurrentThreadId() == mainThreadId)
- return CallService(name, wParam, lParam);
+ return CallService(name, wParam, lParam);
mir_ptr<TServiceToMainThreadItem> item;
item->wParam = wParam;
@@ -576,12 +582,14 @@ MIR_CORE_DLL(int) CallFunctionAsync(void (__stdcall *func)(void *), void *arg)
MIR_CORE_DLL(void) KillModuleServices(HINSTANCE hInst)
{
EnterCriticalSection(&csServices);
+
for (int i = services.getCount()-1; i >= 0; i--) {
if (services[i]->hOwner == hInst) {
char szModuleName[ MAX_PATH ];
GetModuleFileNameA(services[i]->hOwner, szModuleName, sizeof(szModuleName));
DestroyServiceFunction((HANDLE)services[i]->nameHash);
- } }
+ }
+ }
LeaveCriticalSection(&csServices);
}
@@ -589,6 +597,7 @@ MIR_CORE_DLL(void) KillModuleServices(HINSTANCE hInst)
MIR_CORE_DLL(void) KillObjectServices(void* pObject)
{
EnterCriticalSection(&csServices);
+
for (int i = services.getCount()-1; i >= 0; i--)
if (services[i]->object == pObject)
DestroyServiceFunction((HANDLE)services[i]->nameHash);
@@ -613,23 +622,26 @@ int InitialiseModularEngine(void)
void DestroyModularEngine(void)
{
EnterCriticalSection(&csHooks);
+
for (int i=0; i < hooks.getCount(); i++) {
THook* p = hooks[i];
- if (p->subscriberCount)
+ if (p->subscriberCount)
mir_free(p->subscriber);
DeleteCriticalSection(&p->csHook);
mir_free(p);
}
hooks.destroy();
+
LeaveCriticalSection(&csHooks);
DeleteCriticalSection(&csHooks);
EnterCriticalSection(&csServices);
+
for (int j=0; j < services.getCount(); j++)
mir_free(services[j]);
-
services.destroy();
+
LeaveCriticalSection(&csServices);
- DeleteCriticalSection(&csServices);
+ DeleteCriticalSection(&csServices);
CloseHandle(hMainThread);
}
diff --git a/plugins/Mir_core/threads.cpp b/plugins/Mir_core/threads.cpp
new file mode 100644
index 0000000000..68fb526f5d
--- /dev/null
+++ b/plugins/Mir_core/threads.cpp
@@ -0,0 +1,372 @@
+/*
+
+Miranda IM: the free IM client for Microsoft* Windows*
+
+Copyright 2000-2012 Miranda ICQ/IM project,
+all portions of this codebase are copyrighted to the people
+listed in contributors.txt.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+*/
+
+#include "commonheaders.h"
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// APC and mutex functions
+
+static void __stdcall DummyAPCFunc(ULONG_PTR)
+{
+ /* called in the context of thread that cleared it's APC queue */
+ return;
+}
+
+static int MirandaWaitForMutex(HANDLE hEvent)
+{
+ for (;;) {
+ // will get WAIT_IO_COMPLETE for QueueUserAPC() which isnt a result
+ DWORD rc = MsgWaitForMultipleObjectsEx(1, &hEvent, INFINITE, QS_ALLINPUT, MWMO_ALERTABLE);
+ if (rc == WAIT_OBJECT_0 + 1) {
+ MSG msg;
+ while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) {
+ if (IsDialogMessage(msg.hwnd, &msg)) continue;
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ else if (rc == WAIT_OBJECT_0) { // got object
+ return 1;
+ }
+ else if (rc == WAIT_ABANDONED_0 || rc == WAIT_FAILED)
+ return 0;
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// exception handling
+
+static DWORD __cdecl sttDefaultFilter(DWORD, EXCEPTION_POINTERS*)
+{
+ return EXCEPTION_EXECUTE_HANDLER;
+}
+
+pfnExceptionFilter pMirandaExceptFilter = sttDefaultFilter;
+
+MIR_CORE_DLL(pfnExceptionFilter) GetExceptionFilter()
+{
+ return pMirandaExceptFilter;
+}
+
+MIR_CORE_DLL(pfnExceptionFilter) SetExceptionFilter(pfnExceptionFilter pMirandaExceptFilter)
+{
+ pfnExceptionFilter oldOne = pMirandaExceptFilter;
+ if (pMirandaExceptFilter != 0)
+ pMirandaExceptFilter = pMirandaExceptFilter;
+ return oldOne;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// thread support functions
+
+struct THREAD_WAIT_ENTRY
+{
+ DWORD dwThreadId; // valid if hThread isn't signalled
+ HANDLE hThread;
+ HINSTANCE hOwner;
+ void* pObject;
+ //PVOID addr;
+};
+
+static LIST<THREAD_WAIT_ENTRY> threads(10, NumericKeySortT);
+
+struct FORK_ARG {
+ HANDLE hEvent;
+ pThreadFunc threadcode;
+ pThreadFuncEx threadcodeex;
+ void *arg, *owner;
+};
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// forkthread - starts a new thread
+
+void __cdecl forkthread_r(void * arg)
+{
+ struct FORK_ARG * fa = (struct FORK_ARG *) arg;
+ void (*callercode)(void*)=fa->threadcode;
+ void * cookie=fa->arg;
+ Thread_Push(( HINSTANCE)callercode);
+ SetEvent(fa->hEvent);
+ __try
+ {
+ callercode(cookie);
+ }
+ __except(pMirandaExceptFilter(GetExceptionCode(), GetExceptionInformation()))
+ {
+ }
+
+ SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
+ Thread_Pop();
+ return;
+}
+
+MIR_CORE_DLL(UINT_PTR) forkthread( void (__cdecl *threadcode)(void*), unsigned long stacksize, void *arg)
+{
+ UINT_PTR rc;
+ struct FORK_ARG fa;
+ fa.hEvent=CreateEvent(NULL, FALSE, FALSE, NULL);
+ fa.threadcode=threadcode;
+ fa.arg=arg;
+ rc=_beginthread(forkthread_r, stacksize, &fa);
+ if ((UINT_PTR)-1L != rc)
+ WaitForSingleObject(fa.hEvent, INFINITE);
+
+ CloseHandle(fa.hEvent);
+ return rc;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// forkthreadex - starts a new thread with the extended info and returns the thread id
+
+unsigned __stdcall forkthreadex_r(void * arg)
+{
+ struct FORK_ARG *fa = (struct FORK_ARG *)arg;
+ pThreadFuncEx threadcode = fa->threadcodeex;
+ pThreadFuncOwner threadcodeex = (pThreadFuncOwner)fa->threadcodeex;
+ void *cookie = fa->arg;
+ void *owner = fa->owner;
+ unsigned long rc = 0;
+
+ Thread_Push((HINSTANCE)threadcode, fa->owner);
+ SetEvent(fa->hEvent);
+ __try
+ {
+ if (owner)
+ rc = threadcodeex(owner, cookie);
+ else
+ rc = threadcode(cookie);
+ }
+ __except(pMirandaExceptFilter(GetExceptionCode(), GetExceptionInformation()))
+ {
+ }
+
+ SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
+ Thread_Pop();
+ return rc;
+}
+
+MIR_CORE_DLL(UINT_PTR) forkthreadex(
+ void *sec,
+ unsigned stacksize,
+ unsigned (__stdcall *threadcode)(void*),
+ void* owner,
+ void *arg,
+ unsigned *thraddr)
+{
+ UINT_PTR rc;
+ struct FORK_ARG fa = { 0 };
+ fa.threadcodeex = threadcode;
+ fa.arg = arg;
+ fa.owner = owner;
+ fa.hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
+ rc = _beginthreadex(sec, stacksize, forkthreadex_r, (void *)&fa, 0, thraddr);
+ if (rc)
+ WaitForSingleObject(fa.hEvent, INFINITE);
+
+ CloseHandle(fa.hEvent);
+ return rc;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+MIR_CORE_DLL(void) KillObjectThreads(void* owner)
+{
+ if (owner == NULL)
+ return;
+
+ WaitForSingleObject(hStackMutex, INFINITE);
+
+ HANDLE* threadPool = (HANDLE*)alloca(threads.getCount()*sizeof(HANDLE));
+ int threadCount = 0;
+
+ for (int j = threads.getCount(); j--;) {
+ THREAD_WAIT_ENTRY* p = threads[j];
+ if (p->pObject == owner)
+ threadPool[ threadCount++ ] = p->hThread;
+ }
+ ReleaseMutex(hStackMutex);
+
+ // is there anything to kill?
+ if (threadCount > 0) {
+ if ( WaitForMultipleObjects(threadCount, threadPool, TRUE, 5000) == WAIT_TIMEOUT) {
+ // forcibly kill all remaining threads after 5 secs
+ WaitForSingleObject(hStackMutex, INFINITE);
+ for (int j = threads.getCount()-1; j >= 0; j--) {
+ THREAD_WAIT_ENTRY* p = threads[j];
+ if (p->pObject == owner) {
+ TerminateThread(p->hThread, 9999);
+ CloseHandle(p->hThread);
+ threads.remove(j);
+ mir_free(p);
+ }
+ }
+ ReleaseMutex(hStackMutex);
+ }
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+static void CALLBACK KillAllThreads(HWND, UINT, UINT_PTR, DWORD)
+{
+ if ( MirandaWaitForMutex(hStackMutex)) {
+ for (int j=0; j < threads.getCount(); j++) {
+ THREAD_WAIT_ENTRY* p = threads[j];
+ char szModuleName[ MAX_PATH ];
+ GetModuleFileNameA(p->hOwner, szModuleName, sizeof(szModuleName));
+ TerminateThread(p->hThread, 9999);
+ CloseHandle(p->hThread);
+ mir_free(p);
+ }
+
+ threads.destroy();
+
+ ReleaseMutex(hStackMutex);
+ SetEvent(hThreadQueueEmpty);
+ }
+}
+
+MIR_CORE_DLL(void) Thread_Wait(void)
+{
+ // acquire the list and wake up any alertable threads
+ if ( MirandaWaitForMutex(hStackMutex)) {
+ for (int j=0; j < threads.getCount(); j++)
+ QueueUserAPC(DummyAPCFunc, threads[j]->hThread, 0);
+ ReleaseMutex(hStackMutex);
+ }
+
+ // give all unclosed threads 5 seconds to close
+ SetTimer(NULL, 0, 5000, KillAllThreads);
+
+ // wait til the thread list is empty
+ MirandaWaitForMutex(hThreadQueueEmpty);
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+typedef LONG (WINAPI *pNtQIT)(HANDLE, LONG, PVOID, ULONG, PULONG);
+#define ThreadQuerySetWin32StartAddress 9
+
+static void* GetCurrentThreadEntryPoint()
+{
+ LONG ntStatus;
+ HANDLE hDupHandle, hCurrentProcess;
+ DWORD_PTR dwStartAddress;
+
+ pNtQIT NtQueryInformationThread = (pNtQIT)GetProcAddress(GetModuleHandle(_T("ntdll.dll")), "NtQueryInformationThread" );
+ if(NtQueryInformationThread == NULL) return 0;
+
+ hCurrentProcess = GetCurrentProcess();
+ if(!DuplicateHandle(hCurrentProcess, GetCurrentThread(), hCurrentProcess, &hDupHandle, THREAD_QUERY_INFORMATION, FALSE, 0)){
+ SetLastError(ERROR_ACCESS_DENIED);
+ return NULL;
+ }
+ ntStatus = NtQueryInformationThread(hDupHandle, ThreadQuerySetWin32StartAddress, &dwStartAddress, sizeof(DWORD_PTR), NULL);
+ CloseHandle(hDupHandle);
+
+ if(ntStatus != ERROR_SUCCESS) return 0;
+ return ( void* )dwStartAddress;
+}
+
+MIR_CORE_DLL(INT_PTR) Thread_Push(HINSTANCE hInst, void* pOwner)
+{
+ ResetEvent(hThreadQueueEmpty); // thread list is not empty
+ if ( WaitForSingleObject(hStackMutex, INFINITE) == WAIT_OBJECT_0) {
+ THREAD_WAIT_ENTRY* p = (THREAD_WAIT_ENTRY*)mir_calloc(sizeof(THREAD_WAIT_ENTRY));
+
+ DuplicateHandle(GetCurrentProcess(), GetCurrentThread(), GetCurrentProcess(), &p->hThread, 0, FALSE, DUPLICATE_SAME_ACCESS);
+ p->dwThreadId = GetCurrentThreadId();
+ p->pObject = pOwner;
+ if (pluginListAddr.getIndex(hInst) != -1)
+ p->hOwner = hInst;
+ else
+ p->hOwner = GetInstByAddress(( hInst != NULL ) ? (PVOID)hInst : GetCurrentThreadEntryPoint());
+
+ threads.insert(p);
+
+ ReleaseMutex(hStackMutex);
+ }
+ return 0;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+MIR_CORE_DLL(INT_PTR) Thread_Pop()
+{
+ if ( WaitForSingleObject(hStackMutex, INFINITE) == WAIT_OBJECT_0) {
+ DWORD dwThreadId = GetCurrentThreadId();
+ for (int j=0; j < threads.getCount(); j++) {
+ THREAD_WAIT_ENTRY* p = threads[j];
+ if (p->dwThreadId == dwThreadId) {
+ SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
+ CloseHandle(p->hThread);
+ threads.remove(j);
+ mir_free(p);
+
+ if ( !threads.getCount()) {
+ threads.destroy();
+ ReleaseMutex(hStackMutex);
+ SetEvent(hThreadQueueEmpty); // thread list is empty now
+ return 0;
+ }
+
+ ReleaseMutex(hStackMutex);
+ return 0;
+ }
+ }
+ ReleaseMutex(hStackMutex);
+ }
+ return 1;
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+
+const DWORD MS_VC_EXCEPTION=0x406D1388;
+
+#pragma pack(push,8)
+typedef struct tagTHREADNAME_INFO
+{
+ DWORD dwType; // Must be 0x1000.
+ LPCSTR szName; // Pointer to name (in user addr space).
+ DWORD dwThreadID; // Thread ID (-1=caller thread).
+ DWORD dwFlags; // Reserved for future use, must be zero.
+} THREADNAME_INFO;
+#pragma pack(pop)
+
+MIR_CORE_DLL(void) Thread_SetName(DWORD dwThreadID, const char *szThreadName)
+{
+ THREADNAME_INFO info;
+ info.dwType = 0x1000;
+ info.szName = szThreadName;
+ info.dwThreadID = dwThreadID;
+ info.dwFlags = 0;
+
+ __try
+ {
+ RaiseException( MS_VC_EXCEPTION, 0, sizeof(info)/sizeof(ULONG_PTR), (ULONG_PTR*)&info );
+ }
+ __except(EXCEPTION_EXECUTE_HANDLER)
+ {
+ }
+}
diff --git a/protocols/IcqOscarJ/UI/askauthentication.cpp b/protocols/IcqOscarJ/UI/askauthentication.cpp
index 7f541814fb..818d5ce6de 100644
--- a/protocols/IcqOscarJ/UI/askauthentication.cpp
+++ b/protocols/IcqOscarJ/UI/askauthentication.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/UI/askauthentication.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
struct AskAuthParam
diff --git a/protocols/IcqOscarJ/UI/askauthentication.h b/protocols/IcqOscarJ/UI/askauthentication.h
index e60c034699..6a54717402 100644
--- a/protocols/IcqOscarJ/UI/askauthentication.h
+++ b/protocols/IcqOscarJ/UI/askauthentication.h
@@ -21,15 +21,8 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/UI/askauthentication.h,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
diff --git a/protocols/IcqOscarJ/UI/loginpassword.cpp b/protocols/IcqOscarJ/UI/loginpassword.cpp
index b31f000f23..ab65212331 100644
--- a/protocols/IcqOscarJ/UI/loginpassword.cpp
+++ b/protocols/IcqOscarJ/UI/loginpassword.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/UI/loginpassword.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/UI/loginpassword.h b/protocols/IcqOscarJ/UI/loginpassword.h
index cfc31a354d..90bb05db5a 100644
--- a/protocols/IcqOscarJ/UI/loginpassword.h
+++ b/protocols/IcqOscarJ/UI/loginpassword.h
@@ -22,15 +22,8 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/UI/loginpassword.h,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
diff --git a/protocols/IcqOscarJ/UI/userinfotab.cpp b/protocols/IcqOscarJ/UI/userinfotab.cpp
index f04d27f8b3..c5a516d24c 100644
--- a/protocols/IcqOscarJ/UI/userinfotab.cpp
+++ b/protocols/IcqOscarJ/UI/userinfotab.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/UI/userinfotab.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Code for User details ICQ specific pages
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#define SVS_NORMAL 0
diff --git a/protocols/IcqOscarJ/UI/userinfotab.h b/protocols/IcqOscarJ/UI/userinfotab.h
index 4ba7d69e34..6a54717402 100644
--- a/protocols/IcqOscarJ/UI/userinfotab.h
+++ b/protocols/IcqOscarJ/UI/userinfotab.h
@@ -21,13 +21,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/UI/userinfotab.h,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
diff --git a/protocols/IcqOscarJ/capabilities.cpp b/protocols/IcqOscarJ/capabilities.cpp
index f0781d5f97..f994f861af 100644
--- a/protocols/IcqOscarJ/capabilities.cpp
+++ b/protocols/IcqOscarJ/capabilities.cpp
@@ -22,13 +22,7 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/capabilities.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Contains helper functions to handle oscar user capabilities. Scanning and
// adding capabilities are assumed to be more timecritical than looking up
@@ -38,7 +32,6 @@
// adding process too much.
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/capabilities.h b/protocols/IcqOscarJ/capabilities.h
index 7ea66d41c2..3b6590dd09 100644
--- a/protocols/IcqOscarJ/capabilities.h
+++ b/protocols/IcqOscarJ/capabilities.h
@@ -22,19 +22,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/capabilities.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Contains helper functions to handle OSCAR user capabilities.
//
// -----------------------------------------------------------------------------
-
#ifndef __CAPABILITIES_H
#define __CAPABILITIES_H
diff --git a/protocols/IcqOscarJ/chan_01login.cpp b/protocols/IcqOscarJ/chan_01login.cpp
index 8fdeceda22..3c4c4febc6 100644
--- a/protocols/IcqOscarJ/chan_01login.cpp
+++ b/protocols/IcqOscarJ/chan_01login.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/chan_01login.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/chan_02data.cpp b/protocols/IcqOscarJ/chan_02data.cpp
index 991558474f..d55e0262e9 100644
--- a/protocols/IcqOscarJ/chan_02data.cpp
+++ b/protocols/IcqOscarJ/chan_02data.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/chan_02data.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handle channel 2 (Data) packets
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/chan_03error.cpp b/protocols/IcqOscarJ/chan_03error.cpp
index 5a67b0f95d..71c6e2ea7c 100644
--- a/protocols/IcqOscarJ/chan_03error.cpp
+++ b/protocols/IcqOscarJ/chan_03error.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/chan_03error.c,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleErrorChannel(unsigned char* buf, WORD datalen)
diff --git a/protocols/IcqOscarJ/chan_04close.cpp b/protocols/IcqOscarJ/chan_04close.cpp
index 744d0316a3..3c9ee46350 100644
--- a/protocols/IcqOscarJ/chan_04close.cpp
+++ b/protocols/IcqOscarJ/chan_04close.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/chan_04close.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
@@ -104,7 +97,7 @@ void CIcqProto::handleLoginReply(BYTE *buf, WORD datalen, serverthread_info *inf
handleSignonError(wError);
// we return only if the server did not gave us cookie (possible to connect with soft error)
- if (!chain->getLength(0x06, 1))
+ if (!chain->getLength(0x06, 1))
{
disposeChain(&chain);
SetCurrentStatus(ID_STATUS_OFFLINE);
@@ -171,7 +164,7 @@ int CIcqProto::connectNewServer(serverthread_info *info)
}
if (hServerConn)
- {
+ {
/* Time to recreate the packet receiver */
info->hPacketRecver = (HANDLE)CallService(MS_NETLIB_CREATEPACKETRECVER, (WPARAM)hServerConn, 0x2400);
if (!info->hPacketRecver)
diff --git a/protocols/IcqOscarJ/chan_05ping.cpp b/protocols/IcqOscarJ/chan_05ping.cpp
index d245bd65bf..53f094efee 100644
--- a/protocols/IcqOscarJ/chan_05ping.cpp
+++ b/protocols/IcqOscarJ/chan_05ping.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/chan_05ping.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/changeinfo.h b/protocols/IcqOscarJ/changeinfo/changeinfo.h
index ed1005ba5f..9cb2e37220 100644
--- a/protocols/IcqOscarJ/changeinfo/changeinfo.h
+++ b/protocols/IcqOscarJ/changeinfo/changeinfo.h
@@ -20,19 +20,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/changeinfo.h $
-// Revision : $Revision: 12945 $
-// Last change on : $Date: 2010-10-13 06:48:50 +0200 (Ср, 13 окт 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#ifndef __CHANGEINFO_H
#define __CHANGEINFO_H
diff --git a/protocols/IcqOscarJ/changeinfo/constants.cpp b/protocols/IcqOscarJ/changeinfo/constants.cpp
index eaf402a9b0..92403a74f0 100644
--- a/protocols/IcqOscarJ/changeinfo/constants.cpp
+++ b/protocols/IcqOscarJ/changeinfo/constants.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/constants.cpp $
-// Revision : $Revision: 8822 $
-// Last change on : $Date: 2009-01-11 19:17:05 +0200 (Вс, 11 янв 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/db.cpp b/protocols/IcqOscarJ/changeinfo/db.cpp
index c9af84339d..643dcaa034 100644
--- a/protocols/IcqOscarJ/changeinfo/db.cpp
+++ b/protocols/IcqOscarJ/changeinfo/db.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/db.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/dlgproc.cpp b/protocols/IcqOscarJ/changeinfo/dlgproc.cpp
index a78fc64016..babb269c28 100644
--- a/protocols/IcqOscarJ/changeinfo/dlgproc.cpp
+++ b/protocols/IcqOscarJ/changeinfo/dlgproc.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/dlgproc.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/editlist.cpp b/protocols/IcqOscarJ/changeinfo/editlist.cpp
index 98411f0bb4..f2a1470fd3 100644
--- a/protocols/IcqOscarJ/changeinfo/editlist.cpp
+++ b/protocols/IcqOscarJ/changeinfo/editlist.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/editlist.cpp $
-// Revision : $Revision: 11081 $
-// Last change on : $Date: 2009-12-22 00:10:01 +0200 (Вт, 22 дек 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/editstring.cpp b/protocols/IcqOscarJ/changeinfo/editstring.cpp
index 905b833511..288351e8d3 100644
--- a/protocols/IcqOscarJ/changeinfo/editstring.cpp
+++ b/protocols/IcqOscarJ/changeinfo/editstring.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/editstring.cpp $
-// Revision : $Revision: 11081 $
-// Last change on : $Date: 2009-12-22 00:10:01 +0200 (Вт, 22 дек 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/main.cpp b/protocols/IcqOscarJ/changeinfo/main.cpp
index 9be4f7f6a3..22669be3aa 100644
--- a/protocols/IcqOscarJ/changeinfo/main.cpp
+++ b/protocols/IcqOscarJ/changeinfo/main.cpp
@@ -20,16 +20,9 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/main.cpp $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/changeinfo/upload.cpp b/protocols/IcqOscarJ/changeinfo/upload.cpp
index 05193e467b..a468dc9f2b 100644
--- a/protocols/IcqOscarJ/changeinfo/upload.cpp
+++ b/protocols/IcqOscarJ/changeinfo/upload.cpp
@@ -20,18 +20,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/changeinfo/upload.cpp $
-// Revision : $Revision: 11081 $
-// Last change on : $Date: 2009-12-22 00:10:01 +0200 (Вт, 22 дек 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// ChangeInfo Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/channels.h b/protocols/IcqOscarJ/channels.h
index 7c61ff09b4..ba10483b56 100644
--- a/protocols/IcqOscarJ/channels.h
+++ b/protocols/IcqOscarJ/channels.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/channels.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Header for FLAP Channel packet handlers
//
// -----------------------------------------------------------------------------
-
#ifndef __CHANNELS_H
#define __CHANNELS_H
diff --git a/protocols/IcqOscarJ/cookies.cpp b/protocols/IcqOscarJ/cookies.cpp
index 2b9bc91cd0..87ffb4bc07 100644
--- a/protocols/IcqOscarJ/cookies.cpp
+++ b/protocols/IcqOscarJ/cookies.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/cookies.cpp $
-// Revision : $Revision: 14075 $
-// Last change on : $Date: 2012-02-11 16:41:20 +0200 (Сб, 11 фев 2012) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handles packet & message cookies
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/cookies.h b/protocols/IcqOscarJ/cookies.h
index 486674e77e..05e0d170eb 100644
--- a/protocols/IcqOscarJ/cookies.h
+++ b/protocols/IcqOscarJ/cookies.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/cookies.h $
-// Revision : $Revision: 14141 $
-// Last change on : $Date: 2012-03-09 22:52:15 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __COOKIES_H
#define __COOKIES_H
diff --git a/protocols/IcqOscarJ/directpackets.cpp b/protocols/IcqOscarJ/directpackets.cpp
index 71658f2665..b9cab630c5 100644
--- a/protocols/IcqOscarJ/directpackets.cpp
+++ b/protocols/IcqOscarJ/directpackets.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/directpackets.cpp $
-// Revision : $Revision: 11570 $
-// Last change on : $Date: 2010-04-11 16:58:57 +0300 (Вс, 11 апр 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void EncryptDirectPacket(directconnect* dc, icq_packet* p);
diff --git a/protocols/IcqOscarJ/directpackets.h b/protocols/IcqOscarJ/directpackets.h
index 65f06e36d7..64528df4f4 100644
--- a/protocols/IcqOscarJ/directpackets.h
+++ b/protocols/IcqOscarJ/directpackets.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/directpackets.h $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_DIRECTPACKETS_H
#define __ICQ_DIRECTPACKETS_H
diff --git a/protocols/IcqOscarJ/fam_01service.cpp b/protocols/IcqOscarJ/fam_01service.cpp
index e12474d375..69d49a7e17 100644
--- a/protocols/IcqOscarJ/fam_01service.cpp
+++ b/protocols/IcqOscarJ/fam_01service.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_01service.cpp $
-// Revision : $Revision: 14141 $
-// Last change on : $Date: 2012-03-09 22:52:15 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handles packets from Service family
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
extern capstr capXStatus[];
diff --git a/protocols/IcqOscarJ/fam_02location.cpp b/protocols/IcqOscarJ/fam_02location.cpp
index 5510116e73..b7f0163917 100644
--- a/protocols/IcqOscarJ/fam_02location.cpp
+++ b/protocols/IcqOscarJ/fam_02location.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_02location.cpp $
-// Revision : $Revision: 13284 $
-// Last change on : $Date: 2011-01-17 00:42:01 +0200 (Пн, 17 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handles packets from Location family
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/fam_03buddy.cpp b/protocols/IcqOscarJ/fam_03buddy.cpp
index 3819972a8b..91f59147df 100644
--- a/protocols/IcqOscarJ/fam_03buddy.cpp
+++ b/protocols/IcqOscarJ/fam_03buddy.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_03buddy.cpp $
-// Revision : $Revision: 13414 $
-// Last change on : $Date: 2011-03-09 15:17:26 +0200 (Ср, 09 мар 2011) $
-// Last change by : $Author: ashpynov@gmail.com $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handles packets from Buddy family
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/fam_04message.cpp b/protocols/IcqOscarJ/fam_04message.cpp
index bf2ed45578..1a4974e998 100644
--- a/protocols/IcqOscarJ/fam_04message.cpp
+++ b/protocols/IcqOscarJ/fam_04message.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_04message.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Handles packets from Family 4 ICBM Messages
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/fam_09bos.cpp b/protocols/IcqOscarJ/fam_09bos.cpp
index e40d041543..327e045a96 100644
--- a/protocols/IcqOscarJ/fam_09bos.cpp
+++ b/protocols/IcqOscarJ/fam_09bos.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_09bos.cpp $
-// Revision : $Revision: 8822 $
-// Last change on : $Date: 2009-01-11 19:17:05 +0200 (Вс, 11 янв 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleBosFam(unsigned char *pBuffer, WORD wBufferLength, snac_header* pSnacHeader)
diff --git a/protocols/IcqOscarJ/fam_0alookup.cpp b/protocols/IcqOscarJ/fam_0alookup.cpp
index f37f31f165..da77295ecb 100644
--- a/protocols/IcqOscarJ/fam_0alookup.cpp
+++ b/protocols/IcqOscarJ/fam_0alookup.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_0alookup.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleLookupFam(BYTE *pBuffer, WORD wBufferLength, snac_header* pSnacHeader)
diff --git a/protocols/IcqOscarJ/fam_0bstatus.cpp b/protocols/IcqOscarJ/fam_0bstatus.cpp
index cde1395a33..7a979007e2 100644
--- a/protocols/IcqOscarJ/fam_0bstatus.cpp
+++ b/protocols/IcqOscarJ/fam_0bstatus.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/fam_0bstatus.c,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/fam_13servclist.cpp b/protocols/IcqOscarJ/fam_13servclist.cpp
index 7c5e0fffa1..1e92b034c9 100644
--- a/protocols/IcqOscarJ/fam_13servclist.cpp
+++ b/protocols/IcqOscarJ/fam_13servclist.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_13servclist.cpp $
-// Revision : $Revision: 13699 $
-// Last change on : $Date: 2011-07-10 00:15:09 +0300 (Вс, 10 июл 2011) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/fam_15icqserver.cpp b/protocols/IcqOscarJ/fam_15icqserver.cpp
index 6df21796c4..3f332e4f27 100644
--- a/protocols/IcqOscarJ/fam_15icqserver.cpp
+++ b/protocols/IcqOscarJ/fam_15icqserver.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_15icqserver.cpp $
-// Revision : $Revision: 13027 $
-// Last change on : $Date: 2010-10-24 16:23:07 +0200 (Вс, 24 окт 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleIcqExtensionsFam(BYTE *pBuffer, WORD wBufferLength, snac_header* pSnacHeader)
diff --git a/protocols/IcqOscarJ/fam_17signon.cpp b/protocols/IcqOscarJ/fam_17signon.cpp
index c2a87f2ae0..b35a432a48 100644
--- a/protocols/IcqOscarJ/fam_17signon.cpp
+++ b/protocols/IcqOscarJ/fam_17signon.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/fam_17signon.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleAuthorizationFam(BYTE *pBuffer, WORD wBufferLength, snac_header *pSnacHeader, serverthread_info *info)
diff --git a/protocols/IcqOscarJ/families.h b/protocols/IcqOscarJ/families.h
index efc1cabab7..61ac38f17a 100644
--- a/protocols/IcqOscarJ/families.h
+++ b/protocols/IcqOscarJ/families.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/families.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Declaration for handlers of Channel 2 SNAC Families
//
// -----------------------------------------------------------------------------
-
#ifndef __FAMILIES_H
#define __FAMILIES_H
diff --git a/protocols/IcqOscarJ/globals.h b/protocols/IcqOscarJ/globals.h
index 34a34cf2f9..c0d8326689 100644
--- a/protocols/IcqOscarJ/globals.h
+++ b/protocols/IcqOscarJ/globals.h
@@ -22,19 +22,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/globals.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Contains global types & variables declarations.
//
// -----------------------------------------------------------------------------
-
#ifndef __GLOBALS_H
#define __GLOBALS_H
diff --git a/protocols/IcqOscarJ/guids.h b/protocols/IcqOscarJ/guids.h
index ae4d50552f..24073deec4 100644
--- a/protocols/IcqOscarJ/guids.h
+++ b/protocols/IcqOscarJ/guids.h
@@ -22,19 +22,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/guids.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Contains helper functions to handle oscar message GUIDs.
//
// -----------------------------------------------------------------------------
-
#ifndef __GUIDS_H
#define __GUIDS_H
diff --git a/protocols/IcqOscarJ/i18n.cpp b/protocols/IcqOscarJ/i18n.cpp
index 5ebfded9ce..535feebcdf 100644
--- a/protocols/IcqOscarJ/i18n.cpp
+++ b/protocols/IcqOscarJ/i18n.cpp
@@ -22,19 +22,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/i18n.cpp $
-// Revision : $Revision: 11818 $
-// Last change on : $Date: 2010-05-23 15:37:24 +0300 (Вс, 23 май 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Contains helper functions to convert text messages between different
// character sets.
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/i18n.h b/protocols/IcqOscarJ/i18n.h
index 2721779ec9..eaeaad54f3 100644
--- a/protocols/IcqOscarJ/i18n.h
+++ b/protocols/IcqOscarJ/i18n.h
@@ -22,19 +22,12 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/i18n.h $
-// Revision : $Revision: 11599 $
-// Last change on : $Date: 2010-04-19 09:00:16 +0300 (Пн, 19 апр 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Helper functions to convert text messages between different character sets.
//
// -----------------------------------------------------------------------------
-
#ifndef __I18N_H
#define __I18N_H
diff --git a/protocols/IcqOscarJ/iconlib.cpp b/protocols/IcqOscarJ/iconlib.cpp
index 3d95822a1f..3c6408c60d 100644
--- a/protocols/IcqOscarJ/iconlib.cpp
+++ b/protocols/IcqOscarJ/iconlib.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/iconlib.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Support for IcoLib plug-in
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include "m_icolib.h"
diff --git a/protocols/IcqOscarJ/iconlib.h b/protocols/IcqOscarJ/iconlib.h
index 7cd72bb8cf..3a7482f872 100644
--- a/protocols/IcqOscarJ/iconlib.h
+++ b/protocols/IcqOscarJ/iconlib.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/iconlib.h $
-// Revision : $Revision: 11719 $
-// Last change on : $Date: 2010-05-09 01:01:13 +0300 (Вс, 09 май 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Headers for IconLib Plugin / module support
//
// -----------------------------------------------------------------------------
-
#ifndef __ICONLIB_H
#define __ICONLIB_H
diff --git a/protocols/IcqOscarJ/icq_advsearch.cpp b/protocols/IcqOscarJ/icq_advsearch.cpp
index bbddbcbb8e..6c3a3ffa89 100644
--- a/protocols/IcqOscarJ/icq_advsearch.cpp
+++ b/protocols/IcqOscarJ/icq_advsearch.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_advsearch.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
static void InitComboBox(HWND hwndCombo, const FieldNamesItem *names)
diff --git a/protocols/IcqOscarJ/icq_advsearch.h b/protocols/IcqOscarJ/icq_advsearch.h
index 0151450a41..83bf35af93 100644
--- a/protocols/IcqOscarJ/icq_advsearch.h
+++ b/protocols/IcqOscarJ/icq_advsearch.h
@@ -21,19 +21,12 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icq_advsearch.h,v $
-// Revision : $Revision: 9261 $
-// Last change on : $Date: 2009-03-28 22:16:39 +0300 (Сб, 28 мар 2009) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
INT_PTR CALLBACK AdvancedSearchDlgProc(HWND hwndDlg,UINT message,WPARAM wParam,LPARAM lParam);
PBYTE createAdvancedSearchStructure(HWND hwndDlg,int *length);
diff --git a/protocols/IcqOscarJ/icq_avatar.cpp b/protocols/IcqOscarJ/icq_avatar.cpp
index 99b29b6b76..1678f609e5 100644
--- a/protocols/IcqOscarJ/icq_avatar.cpp
+++ b/protocols/IcqOscarJ/icq_avatar.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_avatar.cpp $
-// Revision : $Revision: 14141 $
-// Last change on : $Date: 2012-03-09 22:52:15 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Manages Avatar connection, provides internal service for handling avatars
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include "m_folders.h"
diff --git a/protocols/IcqOscarJ/icq_avatar.h b/protocols/IcqOscarJ/icq_avatar.h
index e6d140795a..7ac8ed7469 100644
--- a/protocols/IcqOscarJ/icq_avatar.h
+++ b/protocols/IcqOscarJ/icq_avatar.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_avatar.h $
-// Revision : $Revision: 14141 $
-// Last change on : $Date: 2012-03-09 22:52:15 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Avatars connection support declarations
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_AVATAR_H
#define __ICQ_AVATAR_H
diff --git a/protocols/IcqOscarJ/icq_clients.cpp b/protocols/IcqOscarJ/icq_clients.cpp
index b09b2fb785..9e82bea7b8 100644
--- a/protocols/IcqOscarJ/icq_clients.cpp
+++ b/protocols/IcqOscarJ/icq_clients.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_clients.cpp $
-// Revision : $Revision: 13847 $
-// Last change on : $Date: 2011-09-07 22:12:32 +0300 (Ср, 07 сен 2011) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Provides capability & signature based client detection
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_constants.h b/protocols/IcqOscarJ/icq_constants.h
index acb5de9ad3..aae88a8f69 100644
--- a/protocols/IcqOscarJ/icq_constants.h
+++ b/protocols/IcqOscarJ/icq_constants.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_constants.h $
-// Revision : $Revision: 14075 $
-// Last change on : $Date: 2012-02-11 16:41:20 +0200 (Сб, 11 фев 2012) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Global constants and default settings are defined here
//
// -----------------------------------------------------------------------------
-
// Most of the protocol constants follow the naming conventions of the
// Oscar documentation at http://iserverd.khstu.ru/oscar/index.html
// BIG THANKS to Alexandr for maintaining this site and to everyone
diff --git a/protocols/IcqOscarJ/icq_db.cpp b/protocols/IcqOscarJ/icq_db.cpp
index 12b412ced3..b142c30cac 100644
--- a/protocols/IcqOscarJ/icq_db.cpp
+++ b/protocols/IcqOscarJ/icq_db.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_db.cpp $
-// Revision : $Revision: 12062 $
-// Last change on : $Date: 2010-06-25 10:49:28 +0300 (Пт, 25 июн 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Internal Database API
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_db.h b/protocols/IcqOscarJ/icq_db.h
index 1d841f4860..5bfc22d58b 100644
--- a/protocols/IcqOscarJ/icq_db.h
+++ b/protocols/IcqOscarJ/icq_db.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_db.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_DB_H
#define __ICQ_DB_H
diff --git a/protocols/IcqOscarJ/icq_direct.cpp b/protocols/IcqOscarJ/icq_direct.cpp
index 55e860adea..7779f1bad7 100644
--- a/protocols/IcqOscarJ/icq_direct.cpp
+++ b/protocols/IcqOscarJ/icq_direct.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_direct.cpp $
-// Revision : $Revision: 11570 $
-// Last change on : $Date: 2010-04-11 16:58:57 +0300 (Вс, 11 апр 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
struct directthreadstartinfo
diff --git a/protocols/IcqOscarJ/icq_direct.h b/protocols/IcqOscarJ/icq_direct.h
index 851f0cc046..3cf91cb493 100644
--- a/protocols/IcqOscarJ/icq_direct.h
+++ b/protocols/IcqOscarJ/icq_direct.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_direct.h $
-// Revision : $Revision: 10352 $
-// Last change on : $Date: 2009-07-18 01:39:53 +0300 (Сб, 18 июл 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_DIRECT_H
#define __ICQ_DIRECT_H
diff --git a/protocols/IcqOscarJ/icq_directmsg.cpp b/protocols/IcqOscarJ/icq_directmsg.cpp
index 5220c91cd3..89fbb7cea5 100644
--- a/protocols/IcqOscarJ/icq_directmsg.cpp
+++ b/protocols/IcqOscarJ/icq_directmsg.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_directmsg.cpp $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleDirectMessage(directconnect* dc, PBYTE buf, WORD wLen)
diff --git a/protocols/IcqOscarJ/icq_fieldnames.cpp b/protocols/IcqOscarJ/icq_fieldnames.cpp
index 85a7aad8e9..d953a081cf 100644
--- a/protocols/IcqOscarJ/icq_fieldnames.cpp
+++ b/protocols/IcqOscarJ/icq_fieldnames.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_fieldnames.cpp $
-// Revision : $Revision: 11199 $
-// Last change on : $Date: 2010-01-29 14:45:44 +0200 (Пт, 29 янв 2010) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_fieldnames.h b/protocols/IcqOscarJ/icq_fieldnames.h
index d3cf772c13..cf15475299 100644
--- a/protocols/IcqOscarJ/icq_fieldnames.h
+++ b/protocols/IcqOscarJ/icq_fieldnames.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_fieldnames.h $
-// Revision : $Revision: 8822 $
-// Last change on : $Date: 2009-01-11 19:17:05 +0200 (Вс, 11 янв 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
struct FieldNamesItem
{
int code;
diff --git a/protocols/IcqOscarJ/icq_filerequests.cpp b/protocols/IcqOscarJ/icq_filerequests.cpp
index df49717199..af9e0f3bd7 100644
--- a/protocols/IcqOscarJ/icq_filerequests.cpp
+++ b/protocols/IcqOscarJ/icq_filerequests.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_filerequests.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
void CIcqProto::handleFileAck(PBYTE buf, WORD wLen, DWORD dwUin, DWORD dwCookie, WORD wStatus, char* pszText)
diff --git a/protocols/IcqOscarJ/icq_filetransfer.cpp b/protocols/IcqOscarJ/icq_filetransfer.cpp
index ed81ad4c5a..61484c3987 100644
--- a/protocols/IcqOscarJ/icq_filetransfer.cpp
+++ b/protocols/IcqOscarJ/icq_filetransfer.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_filetransfer.cpp $
-// Revision : $Revision: 12331 $
-// Last change on : $Date: 2010-08-18 16:59:50 +0300 (Ср, 18 авг 2010) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_firstrun.cpp b/protocols/IcqOscarJ/icq_firstrun.cpp
index c1c596a60b..1208d6d0ec 100644
--- a/protocols/IcqOscarJ/icq_firstrun.cpp
+++ b/protocols/IcqOscarJ/icq_firstrun.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_firstrun.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_http.cpp b/protocols/IcqOscarJ/icq_http.cpp
index 1acc5f54d9..3e50db43ed 100644
--- a/protocols/IcqOscarJ/icq_http.cpp
+++ b/protocols/IcqOscarJ/icq_http.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icq_http.c,v $
-// Revision : $Revision: 12606 $
-// Last change on : $Date: 2010-09-06 15:38:27 +0300 (Пн, 06 сен 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// HTTP Gateway Handling routines
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
int icq_httpGatewayInit(HANDLE hConn, NETLIBOPENCONNECTION *nloc, NETLIBHTTPREQUEST *nlhr)
diff --git a/protocols/IcqOscarJ/icq_http.h b/protocols/IcqOscarJ/icq_http.h
index 60fb2ba416..017a5ea5fc 100644
--- a/protocols/IcqOscarJ/icq_http.h
+++ b/protocols/IcqOscarJ/icq_http.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icq_http.h,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_HTTP_H
#define __ICQ_HTTP_H
diff --git a/protocols/IcqOscarJ/icq_infoupdate.cpp b/protocols/IcqOscarJ/icq_infoupdate.cpp
index dd73af7ded..a5bf1656a7 100644
--- a/protocols/IcqOscarJ/icq_infoupdate.cpp
+++ b/protocols/IcqOscarJ/icq_infoupdate.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_infoupdate.cpp $
-// Revision : $Revision: 13091 $
-// Last change on : $Date: 2010-11-01 21:07:18 +0200 (Пн, 01 ноя 2010) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Background thread for automatic update of user details
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
@@ -401,13 +394,14 @@ void __cdecl CIcqProto::InfoUpdateThread( void* )
NetLog_Server("%s thread ended.", "Info-Update");
}
-
// Clean up before exit
void CIcqProto::icq_InfoUpdateCleanup(void)
{
bInfoUpdateRunning = FALSE;
SetEvent(hInfoQueueEvent); // break queue loop
- if (hInfoThread) ICQWaitForSingleObject(hInfoThread, INFINITE, TRUE);
+ if (hInfoThread)
+ ICQWaitForSingleObject(hInfoThread, INFINITE, TRUE);
+
// Uninit mutex
SAFE_DELETE(&infoUpdateMutex);
CloseHandle(hInfoQueueEvent);
diff --git a/protocols/IcqOscarJ/icq_infoupdate.h b/protocols/IcqOscarJ/icq_infoupdate.h
index 6d59811815..b5f950544f 100644
--- a/protocols/IcqOscarJ/icq_infoupdate.h
+++ b/protocols/IcqOscarJ/icq_infoupdate.h
@@ -22,13 +22,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_infoupdate.h $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
diff --git a/protocols/IcqOscarJ/icq_menu.cpp b/protocols/IcqOscarJ/icq_menu.cpp
index 054cfd0b09..8c67310963 100644
--- a/protocols/IcqOscarJ/icq_menu.cpp
+++ b/protocols/IcqOscarJ/icq_menu.cpp
@@ -22,16 +22,9 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: icq_menu.cpp $
-// Revision : $Revision: 0 $
-// Last change on : $Date: 2009-12-21 19:52:36 +0300 $
-// Last change by : $Author: Unsane $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include <m_skin.h>
diff --git a/protocols/IcqOscarJ/icq_opts.cpp b/protocols/IcqOscarJ/icq_opts.cpp
index da34fe2cdb..44c1881d14 100644
--- a/protocols/IcqOscarJ/icq_opts.cpp
+++ b/protocols/IcqOscarJ/icq_opts.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_opts.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include <win2k.h>
diff --git a/protocols/IcqOscarJ/icq_opts.h b/protocols/IcqOscarJ/icq_opts.h
index 383a59d7f9..b26a9fbb9f 100644
--- a/protocols/IcqOscarJ/icq_opts.h
+++ b/protocols/IcqOscarJ/icq_opts.h
@@ -22,16 +22,9 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_opts.h $
-// Revision : $Revision: 8822 $
-// Last change on : $Date: 2009-01-11 19:17:05 +0200 (Вс, 11 янв 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
int IcqOptInit(WPARAM, LPARAM);
diff --git a/protocols/IcqOscarJ/icq_packet.cpp b/protocols/IcqOscarJ/icq_packet.cpp
index 3de6bd055b..79241cf297 100644
--- a/protocols/IcqOscarJ/icq_packet.cpp
+++ b/protocols/IcqOscarJ/icq_packet.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_packet.cpp $
-// Revision : $Revision: 13213 $
-// Last change on : $Date: 2010-12-22 08:54:39 +0200 (Ср, 22 дек 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_packet.h b/protocols/IcqOscarJ/icq_packet.h
index 8ffaea6068..ccaeb91fcc 100644
--- a/protocols/IcqOscarJ/icq_packet.h
+++ b/protocols/IcqOscarJ/icq_packet.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_packet.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_PACKET_H
#define __ICQ_PACKET_H
diff --git a/protocols/IcqOscarJ/icq_popups.cpp b/protocols/IcqOscarJ/icq_popups.cpp
index c593dd6367..f7c70569e1 100644
--- a/protocols/IcqOscarJ/icq_popups.cpp
+++ b/protocols/IcqOscarJ/icq_popups.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_popups.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// PopUp Plugin stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
BOOL bPopUpService = FALSE;
diff --git a/protocols/IcqOscarJ/icq_popups.h b/protocols/IcqOscarJ/icq_popups.h
index 92c6882554..a42c230634 100644
--- a/protocols/IcqOscarJ/icq_popups.h
+++ b/protocols/IcqOscarJ/icq_popups.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_popups.h $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Headers for PopUp Plugin support
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_POPUPS_H
#define __ICQ_POPUPS_H
diff --git a/protocols/IcqOscarJ/icq_proto.cpp b/protocols/IcqOscarJ/icq_proto.cpp
index 342153e976..ce46d9f719 100644
--- a/protocols/IcqOscarJ/icq_proto.cpp
+++ b/protocols/IcqOscarJ/icq_proto.cpp
@@ -22,24 +22,16 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_proto.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Protocol Interface Implementation
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include "m_icolib.h"
#include "m_updater.h"
-
extern PLUGININFOEX pluginInfo;
extern HANDLE hExtraXStatus;
@@ -249,15 +241,6 @@ CIcqProto::~CIcqProto()
m_bXStatusEnabled = 10; // block clist changing
m_bMoodsEnabled = 10;
- // Make sure all connections are closed
- CloseContactDirectConns(NULL);
- while ( true ) {
- if ( !directConns.getCount())
- break;
-
- Sleep(10); /* yeah, ugly */
- }
-
// Serv-list update board clean-up
FlushServerIDs();
/// TODO: make sure server-list handler thread is not running
@@ -382,6 +365,9 @@ int CIcqProto::OnPreShutdown(WPARAM wParam,LPARAM lParam)
{
// all threads should be terminated here
icq_InfoUpdateCleanup();
+
+ // Make sure all connections are closed
+ CloseContactDirectConns(NULL);
return 0;
}
diff --git a/protocols/IcqOscarJ/icq_proto.h b/protocols/IcqOscarJ/icq_proto.h
index 329ab4d897..6c2b4a059e 100644
--- a/protocols/IcqOscarJ/icq_proto.h
+++ b/protocols/IcqOscarJ/icq_proto.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_proto.h $
-// Revision : $Revision: 14141 $
-// Last change on : $Date: 2012-03-09 22:52:15 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Protocol Interface declarations
//
// -----------------------------------------------------------------------------
-
#ifndef _ICQ_PROTO_H_
#define _ICQ_PROTO_H_
diff --git a/protocols/IcqOscarJ/icq_rates.cpp b/protocols/IcqOscarJ/icq_rates.cpp
index ebd6a13b8f..09a1b27396 100644
--- a/protocols/IcqOscarJ/icq_rates.cpp
+++ b/protocols/IcqOscarJ/icq_rates.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_rates.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Rate Management stuff
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
//
diff --git a/protocols/IcqOscarJ/icq_rates.h b/protocols/IcqOscarJ/icq_rates.h
index ca3212964d..de5d9b76d0 100644
--- a/protocols/IcqOscarJ/icq_rates.h
+++ b/protocols/IcqOscarJ/icq_rates.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_rates.h $
-// Revision : $Revision: 11570 $
-// Last change on : $Date: 2010-04-11 16:58:57 +0300 (Вс, 11 апр 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Rate management
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_RATES_H
#define __ICQ_RATES_H
diff --git a/protocols/IcqOscarJ/icq_server.cpp b/protocols/IcqOscarJ/icq_server.cpp
index a3621ec6aa..c12d6ef362 100644
--- a/protocols/IcqOscarJ/icq_server.cpp
+++ b/protocols/IcqOscarJ/icq_server.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_server.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Manages main server connection, low-level communication
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
@@ -79,7 +72,6 @@ void __cdecl CIcqProto::ServerThread(serverthread_start_info *infoParam)
return;
}
}
-
}
// Login error
@@ -225,7 +217,8 @@ void __cdecl CIcqProto::ServerThread(serverthread_start_info *infoParam)
servlistPendingFlushOperations(); // clear pending operations list
- { // release rates queues
+ // release rates queues
+ {
icq_lock l(m_ratesMutex);
SAFE_DELETE((void_struct**)&m_ratesQueue_Request);
diff --git a/protocols/IcqOscarJ/icq_server.h b/protocols/IcqOscarJ/icq_server.h
index df40332a3d..231ebaaa4d 100644
--- a/protocols/IcqOscarJ/icq_server.h
+++ b/protocols/IcqOscarJ/icq_server.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_server.h $
-// Revision : $Revision: 13213 $
-// Last change on : $Date: 2010-12-22 08:54:39 +0200 (Ср, 22 дек 2010) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Declarations for server thread
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_SERVER_H
#define __ICQ_SERVER_H
diff --git a/protocols/IcqOscarJ/icq_servlist.cpp b/protocols/IcqOscarJ/icq_servlist.cpp
index 5be3c895d8..b2adc4831c 100644
--- a/protocols/IcqOscarJ/icq_servlist.cpp
+++ b/protocols/IcqOscarJ/icq_servlist.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_servlist.cpp $
-// Revision : $Revision: 14146 $
-// Last change on : $Date: 2012-03-09 23:54:49 +0200 (Пт, 09 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Functions that handles list of used server IDs, sends low-level packets for SSI information
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_servlist.h b/protocols/IcqOscarJ/icq_servlist.h
index c16ee552a5..76118ce3c0 100644
--- a/protocols/IcqOscarJ/icq_servlist.h
+++ b/protocols/IcqOscarJ/icq_servlist.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_servlist.h $
-// Revision : $Revision: 11805 $
-// Last change on : $Date: 2010-05-20 23:54:42 +0300 (Чт, 20 май 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_SERVLIST_H
#define __ICQ_SERVLIST_H
diff --git a/protocols/IcqOscarJ/icq_uploadui.cpp b/protocols/IcqOscarJ/icq_uploadui.cpp
index 6073de6b10..217389b463 100644
--- a/protocols/IcqOscarJ/icq_uploadui.cpp
+++ b/protocols/IcqOscarJ/icq_uploadui.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_uploadui.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Implements Manage Server List dialog
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
static int bListInit = 0;
diff --git a/protocols/IcqOscarJ/icq_uploadui.h b/protocols/IcqOscarJ/icq_uploadui.h
index bc5cd4d17a..90bb05db5a 100644
--- a/protocols/IcqOscarJ/icq_uploadui.h
+++ b/protocols/IcqOscarJ/icq_uploadui.h
@@ -22,13 +22,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icq_uploadui.h,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
diff --git a/protocols/IcqOscarJ/icq_xstatus.cpp b/protocols/IcqOscarJ/icq_xstatus.cpp
index caf4b8e627..92ae0eea14 100644
--- a/protocols/IcqOscarJ/icq_xstatus.cpp
+++ b/protocols/IcqOscarJ/icq_xstatus.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_xstatus.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Support for Custom Statuses
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include "m_extraicons.h"
diff --git a/protocols/IcqOscarJ/icq_xtraz.cpp b/protocols/IcqOscarJ/icq_xtraz.cpp
index a4152fc5ea..2b73274365 100644
--- a/protocols/IcqOscarJ/icq_xtraz.cpp
+++ b/protocols/IcqOscarJ/icq_xtraz.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_xtraz.cpp $
-// Revision : $Revision: 13678 $
-// Last change on : $Date: 2011-07-04 00:53:23 +0300 (Пн, 04 июл 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Internal Xtraz API
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icq_xtraz.h b/protocols/IcqOscarJ/icq_xtraz.h
index 8393e7b68f..28578e71a5 100644
--- a/protocols/IcqOscarJ/icq_xtraz.h
+++ b/protocols/IcqOscarJ/icq_xtraz.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icq_xtraz.h $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQ_XTRAZ_H
#define __ICQ_XTRAZ_H
diff --git a/protocols/IcqOscarJ/icqosc_svcs.cpp b/protocols/IcqOscarJ/icqosc_svcs.cpp
index 470f1f3030..15a8b17013 100644
--- a/protocols/IcqOscarJ/icqosc_svcs.cpp
+++ b/protocols/IcqOscarJ/icqosc_svcs.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icqosc_svcs.cpp $
-// Revision : $Revision: 14152 $
-// Last change on : $Date: 2012-03-10 19:53:00 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// High-level code for exported API services
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icqosc_svcs.h b/protocols/IcqOscarJ/icqosc_svcs.h
index d2239f0e27..844eecee51 100644
--- a/protocols/IcqOscarJ/icqosc_svcs.h
+++ b/protocols/IcqOscarJ/icqosc_svcs.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icqosc_svcs.h $
-// Revision : $Revision: 9261 $
-// Last change on : $Date: 2009-03-28 22:16:39 +0300 (Сб, 28 мар 2009) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __ICQOSC_SVCS_H
#define __ICQOSC_SVCS_H
diff --git a/protocols/IcqOscarJ/icqoscar.cpp b/protocols/IcqOscarJ/icqoscar.cpp
index b7344437de..5ce67145cd 100644
--- a/protocols/IcqOscarJ/icqoscar.cpp
+++ b/protocols/IcqOscarJ/icqoscar.cpp
@@ -21,13 +21,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $Source: /cvsroot/miranda/miranda/protocols/IcqOscarJ/icqoscar.c,v $
-// Revision : $Revision: 7500 $
-// Last change on : $Date: 2008-03-24 20:07:37 +0200 (Пн, 24 мар 2008) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// The only purpose of this file is to make sure that the precompiled headers
// are included and compiled. The Visual Studio settings for this file must be
@@ -38,5 +32,4 @@
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/icqoscar.h b/protocols/IcqOscarJ/icqoscar.h
index 3a4291d1dc..1efd1ffebb 100644
--- a/protocols/IcqOscarJ/icqoscar.h
+++ b/protocols/IcqOscarJ/icqoscar.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/icqoscar.h $
-// Revision : $Revision: 14085 $
-// Last change on : $Date: 2012-02-13 12:55:56 +0200 (Пн, 13 фев 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Includes all header files that should be precompiled to speed up compilation.
//
// -----------------------------------------------------------------------------
-
#define MIRANDA_VER 0x0A00
#define _WIN32_WINNT 0x0501
diff --git a/protocols/IcqOscarJ/init.cpp b/protocols/IcqOscarJ/init.cpp
index c876fef7b2..da40414e15 100644
--- a/protocols/IcqOscarJ/init.cpp
+++ b/protocols/IcqOscarJ/init.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/init.cpp $
-// Revision : $Revision: 13596 $
-// Last change on : $Date: 2011-04-15 22:07:23 +0300 (Пт, 15 апр 2011) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
#include "m_extraicons.h"
diff --git a/protocols/IcqOscarJ/init.h b/protocols/IcqOscarJ/init.h
index 0f49a0bf22..0e93a8a89f 100644
--- a/protocols/IcqOscarJ/init.h
+++ b/protocols/IcqOscarJ/init.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/init.h $
-// Revision : $Revision: 13284 $
-// Last change on : $Date: 2011-01-17 00:42:01 +0200 (Пн, 17 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
// Debug defines
#define DBG_CAPHTML
#define DBG_CAPMTN
diff --git a/protocols/IcqOscarJ/log.cpp b/protocols/IcqOscarJ/log.cpp
index cb8f923b36..402863a456 100644
--- a/protocols/IcqOscarJ/log.cpp
+++ b/protocols/IcqOscarJ/log.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/log.cpp $
-// Revision : $Revision: 10574 $
-// Last change on : $Date: 2009-08-18 20:20:42 +0300 (Вт, 18 авг 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
extern BOOL bPopUpService;
diff --git a/protocols/IcqOscarJ/log.h b/protocols/IcqOscarJ/log.h
index ef5079134b..6da25df0d7 100644
--- a/protocols/IcqOscarJ/log.h
+++ b/protocols/IcqOscarJ/log.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/log.h $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __LOG_H
#define __LOG_H
diff --git a/protocols/IcqOscarJ/oscar_filetransfer.cpp b/protocols/IcqOscarJ/oscar_filetransfer.cpp
index bc359f0fa1..8a0db9a6f3 100644
--- a/protocols/IcqOscarJ/oscar_filetransfer.cpp
+++ b/protocols/IcqOscarJ/oscar_filetransfer.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/oscar_filetransfer.cpp $
-// Revision : $Revision: 14229 $
-// Last change on : $Date: 2012-05-14 03:26:21 +0300 (Пн, 14 май 2012) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// OSCAR File-Transfers implementation
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
struct oscarthreadstartinfo
diff --git a/protocols/IcqOscarJ/oscar_filetransfer.h b/protocols/IcqOscarJ/oscar_filetransfer.h
index a635f06e8f..fa6ec9169e 100644
--- a/protocols/IcqOscarJ/oscar_filetransfer.h
+++ b/protocols/IcqOscarJ/oscar_filetransfer.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/oscar_filetransfer.h $
-// Revision : $Revision: 11353 $
-// Last change on : $Date: 2010-03-10 02:21:03 +0200 (Ср, 10 мар 2010) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// OSCAR File-Transfers headers
//
// -----------------------------------------------------------------------------
-
#ifndef __OSCAR_FILETRANSFER_H
#define __OSCAR_FILETRANSFER_H
diff --git a/protocols/IcqOscarJ/stdpackets.cpp b/protocols/IcqOscarJ/stdpackets.cpp
index c0bf42238d..3bc9502560 100644
--- a/protocols/IcqOscarJ/stdpackets.cpp
+++ b/protocols/IcqOscarJ/stdpackets.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/stdpackets.cpp $
-// Revision : $Revision: 13915 $
-// Last change on : $Date: 2011-11-08 01:09:29 +0200 (Вт, 08 ноя 2011) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
extern const int moodXStatus[];
diff --git a/protocols/IcqOscarJ/stdpackets.h b/protocols/IcqOscarJ/stdpackets.h
index 5d4903fc89..b656d713c6 100644
--- a/protocols/IcqOscarJ/stdpackets.h
+++ b/protocols/IcqOscarJ/stdpackets.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/stdpackets.h $
-// Revision : $Revision: 7484 $
-// Last change on : $Date: 2008-03-21 11:43:39 +0200 (Пт, 21 мар 2008) $
-// Last change by : $Author: ghazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Low-level functions that really sends data to server
//
// -----------------------------------------------------------------------------
-
#ifndef __STDPACKETS_H
#define __STDPACKETS_H
diff --git a/protocols/IcqOscarJ/tlv.cpp b/protocols/IcqOscarJ/tlv.cpp
index af6bde4fe7..7c4eafca3a 100644
--- a/protocols/IcqOscarJ/tlv.cpp
+++ b/protocols/IcqOscarJ/tlv.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/tlv.cpp $
-// Revision : $Revision: 13324 $
-// Last change on : $Date: 2011-01-23 17:58:59 +0200 (Вс, 23 янв 2011) $
-// Last change by : $Author: borkra $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Helper functions for Oscar TLV chains
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/tlv.h b/protocols/IcqOscarJ/tlv.h
index 12553bde49..5cee00c7c4 100644
--- a/protocols/IcqOscarJ/tlv.h
+++ b/protocols/IcqOscarJ/tlv.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/tlv.h $
-// Revision : $Revision: 8822 $
-// Last change on : $Date: 2009-01-11 19:17:05 +0200 (Вс, 11 янв 2009) $
-// Last change by : $Author: jokusoftware $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __TLV_H
#define __TLV_H
diff --git a/protocols/IcqOscarJ/utilities.cpp b/protocols/IcqOscarJ/utilities.cpp
index d80457d11b..7ec9edcc8e 100644
--- a/protocols/IcqOscarJ/utilities.cpp
+++ b/protocols/IcqOscarJ/utilities.cpp
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/utilities.cpp $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#include "icqoscar.h"
diff --git a/protocols/IcqOscarJ/utilities.h b/protocols/IcqOscarJ/utilities.h
index b469c9e4f4..4d881e578e 100644
--- a/protocols/IcqOscarJ/utilities.h
+++ b/protocols/IcqOscarJ/utilities.h
@@ -22,18 +22,11 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// -----------------------------------------------------------------------------
-//
-// File name : $URL: http://miranda.googlecode.com/svn/trunk/miranda/protocols/IcqOscarJ/utilities.h $
-// Revision : $Revision: 14148 $
-// Last change on : $Date: 2012-03-10 00:01:01 +0200 (Сб, 10 мар 2012) $
-// Last change by : $Author: george.hazan $
-//
-// DESCRIPTION:
+// DESCRIPTION:
//
// Describe me here please...
//
// -----------------------------------------------------------------------------
-
#ifndef __UTILITIES_H
#define __UTILITIES_H
diff --git a/src/core/miranda.cpp b/src/core/miranda.cpp
index 64ec124378..2e0759c04d 100644
--- a/src/core/miranda.cpp
+++ b/src/core/miranda.cpp
@@ -83,7 +83,7 @@ HANDLE hShutdownEvent, hPreShutdownEvent;
static HANDLE hWaitObjects[MAXIMUM_WAIT_OBJECTS-1];
static char *pszWaitServices[MAXIMUM_WAIT_OBJECTS-1];
static int waitObjectCount = 0;
-HANDLE hMirandaShutdown, hThreadQueueEmpty;
+HANDLE hMirandaShutdown;
HINSTANCE hInst;
int hLangpack = 0;
@@ -350,7 +350,6 @@ exit:
UnloadNewPluginsModule();
UnloadCoreModule();
CloseHandle(hMirandaShutdown);
- CloseHandle(hThreadQueueEmpty);
if (pTaskbarInterface)
pTaskbarInterface->Release();
@@ -446,7 +445,6 @@ static INT_PTR RemoveWait(WPARAM wParam, LPARAM)
int LoadSystemModule(void)
{
hMirandaShutdown = CreateEvent(NULL, TRUE, FALSE, NULL);
- hThreadQueueEmpty = CreateEvent(NULL, TRUE, TRUE, NULL);
hShutdownEvent = CreateHookableEvent(ME_SYSTEM_SHUTDOWN);
hPreShutdownEvent = CreateHookableEvent(ME_SYSTEM_PRESHUTDOWN);