From 7cb44a3c4447a149004189b046a67def1b65a356 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 7 Jul 2013 13:20:17 +0000 Subject: - SM cleaning; - code cleaning git-svn-id: http://svn.miranda-ng.org/main/trunk@5256 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/TabSRMM/src/chat/chat.h | 6 +- plugins/TabSRMM/src/chat/chatprototypes.h | 32 +- plugins/TabSRMM/src/chat/clist.cpp | 2 +- plugins/TabSRMM/src/chat/log.cpp | 2 +- plugins/TabSRMM/src/chat/main.cpp | 1 - plugins/TabSRMM/src/chat/manager.cpp | 894 ++++++++++++------------------ plugins/TabSRMM/src/chat/message.cpp | 8 +- plugins/TabSRMM/src/chat/options.cpp | 1 - plugins/TabSRMM/src/chat/services.cpp | 69 +-- plugins/TabSRMM/src/chat/tools.cpp | 24 +- plugins/TabSRMM/src/chat/window.cpp | 12 +- plugins/TabSRMM/src/commonheaders.h | 1 - plugins/TabSRMM/src/container.cpp | 9 +- plugins/TabSRMM/src/msgdlgutils.cpp | 2 +- plugins/TabSRMM/src/msgs.h | 2 +- 15 files changed, 436 insertions(+), 629 deletions(-) (limited to 'plugins') diff --git a/plugins/TabSRMM/src/chat/chat.h b/plugins/TabSRMM/src/chat/chat.h index 316ca997e6..ff7d5577ea 100644 --- a/plugins/TabSRMM/src/chat/chat.h +++ b/plugins/TabSRMM/src/chat/chat.h @@ -233,7 +233,7 @@ struct LOGSTREAMDATA HWND hwnd; LOGINFO* lin; bool bStripFormat, bRedraw; - SESSION_INFO* si; + SESSION_INFO *si; int crCount; TWindowData* dat; }; @@ -244,7 +244,7 @@ struct TMUCSettings bool bShowTime, bShowTimeIfChanged, bLoggingEnabled; bool bFlashWindow, bFlashWindowHightlight; bool bOpenInDefault; - bool bHighlightEnabled, bLogIndentEnabled; + bool bLogIndentEnabled; bool bStripFormat; bool bBBCodeInPopups; bool bTrayIconInactiveOnly; @@ -305,7 +305,7 @@ struct COLORCHOOSER int yPosition; HWND hWndTarget; bool bForeground; - SESSION_INFO* si; + SESSION_INFO *si; }; #pragma comment(lib,"comctl32.lib") diff --git a/plugins/TabSRMM/src/chat/chatprototypes.h b/plugins/TabSRMM/src/chat/chatprototypes.h index 863fe3e0c1..e70361c10e 100644 --- a/plugins/TabSRMM/src/chat/chatprototypes.h +++ b/plugins/TabSRMM/src/chat/chatprototypes.h @@ -27,7 +27,7 @@ void UpgradeCheck(void); INT_PTR CALLBACK DlgProcColorToolWindow(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); //log.c -void Log_StreamInEvent(HWND hwndDlg, LOGINFO* lin, SESSION_INFO* si, bool bRedraw, bool bPhaseTwo); +void Log_StreamInEvent(HWND hwndDlg, LOGINFO* lin, SESSION_INFO *si, bool bRedraw, bool bPhaseTwo); void LoadMsgLogBitmaps(void); void FreeMsgLogBitmaps(void); TCHAR* GetChatLogsFilename(SESSION_INFO *si, time_t tTime); @@ -51,15 +51,14 @@ HICON LoadIconEx(int iIndex, char * pszIcoLibName, int iX, int iY); void HookEvents(void); void UnhookEvents(void); int CreateServiceFunctions(void); -void DestroyServiceFunctions(void); -void DestroyHookableEvents(void); void CreateHookableEvents(void); +void DestroyHookableEvents(void); void TabsInit(void); int ModulesLoaded(WPARAM wParam,LPARAM lParam); int SmileyOptionsChanged(WPARAM wParam,LPARAM lParam); int PreShutdown(WPARAM wParam,LPARAM lParam); int IconsChanged(WPARAM wParam,LPARAM lParam); -void ShowRoom(SESSION_INFO* si, WPARAM wp, BOOL bSetForeground); +void ShowRoom(SESSION_INFO *si, WPARAM wp, BOOL bSetForeground); INT_PTR Service_AddEvent(WPARAM wParam, LPARAM lParam); int Service_ItemData(WPARAM wParam, LPARAM lParam); int Service_SetSBText(WPARAM wParam, LPARAM lParam); @@ -70,24 +69,25 @@ HWND CreateNewRoom(TContainerData *pContainer, SESSION_INFO *si, BOOL bActivateT //manager.c void SetActiveSession(const TCHAR* pszID, const char* pszModule); -void SetActiveSessionEx(SESSION_INFO* si); +void SetActiveSessionEx(SESSION_INFO *si); SESSION_INFO* GetActiveSession(void); SESSION_INFO* SM_AddSession(const TCHAR* pszID, const char* pszModule); int SM_RemoveSession(const TCHAR* pszID, const char* pszModule, bool removeContact); +void SM_RemoveContainer(TContainerData *pData); SESSION_INFO* SM_FindSession(const TCHAR* pszID, const char* pszModule); USERINFO* SM_AddUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszNick, WORD wStatus); SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const TCHAR* pszOriginal, const TCHAR* pszCurrent); BOOL SM_ChangeUID(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszNewUID); -BOOL SM_ChangeNick(const TCHAR* pszID, const char* pszModule, GCEVENT * gce); +BOOL SM_ChangeNick(const TCHAR* pszID, const char* pszModule, GCEVENT *gce); BOOL SM_RemoveUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID); BOOL SM_SetOffline(const TCHAR* pszID, const char* pszModule); -HICON SM_GetStatusIcon(SESSION_INFO* si, USERINFO* ui, char* szIndicator); +HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO* ui, char* szIndicator); BOOL SM_SetStatus(const TCHAR* pszID, const char* pszModule, int wStatus); BOOL SM_SetStatusEx(const TCHAR* pszID, const char* pszModule, const TCHAR* pszText, int flags ); BOOL SM_SendUserMessage(const TCHAR* pszID, const char* pszModule, const TCHAR* pszText); STATUSINFO* SM_AddStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszStatus); -BOOL SM_AddEventToAllMatchingUID(GCEVENT * gce, BOOL bisHighLight = FALSE); -BOOL SM_AddEvent(const TCHAR* pszID, const char* pszModule, GCEVENT * gce, BOOL bIsHighlighted); +BOOL SM_AddEventToAllMatchingUID(GCEVENT *gce, BOOL bisHighLight = FALSE); +BOOL SM_AddEvent(const TCHAR* pszID, const char* pszModule, GCEVENT *gce, BOOL bIsHighlighted); LRESULT SM_SendMessage(const TCHAR* pszID, const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam); BOOL SM_PostMessage(const TCHAR* pszID, const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam); BOOL SM_BroadcastMessage(const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam, BOOL bAsync); @@ -103,7 +103,7 @@ int SM_GetCount(const char* pszModule); SESSION_INFO* SM_FindSessionByHWND(HWND h); SESSION_INFO* SM_FindSessionByHCONTACT(HANDLE h); SESSION_INFO* SM_FindSessionByIndex(const char* pszModule, int iItem); -char* SM_GetUsers(SESSION_INFO* si); +char* SM_GetUsers(SESSION_INFO *si); USERINFO* SM_GetUserFromIndex(const TCHAR* pszID, const char* pszModule, int index); BOOL SM_ReconfigureFilters(); BOOL SM_InvalidateLogDirectories(); @@ -152,20 +152,20 @@ int WCCmp(TCHAR* wild, TCHAR*string); //tools.c TCHAR* RemoveFormatting(const TCHAR* pszText, bool fLower = false, bool fStripCR = false, TCHAR* buf = 0, const size_t len = 0); -BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO* si, GCEVENT * gce, BOOL bHighlight, int bManyFix); +BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight, int bManyFix); int Chat_GetColorIndex(const char* pszModule, COLORREF cr); void CheckColorsInModule(const char* pszModule); TCHAR* my_strstri(const TCHAR* s1, const TCHAR* s2) ; int GetRichTextLength(HWND hwnd); -BOOL IsHighlighted(SESSION_INFO* si, const TCHAR* pszText); -UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO* si, TCHAR* pszUID, TCHAR* pszWordText); +BOOL IsHighlighted(SESSION_INFO *si, const TCHAR* pszText); +UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, TCHAR* pszUID, TCHAR* pszWordText); void DestroyGCMenu(HMENU *hMenu, int iIndex); BOOL DoEventHookAsync(HWND hwnd, const TCHAR* pszID, const char* pszModule, int iType, TCHAR* pszUID, TCHAR* pszText, DWORD dwItem); BOOL DoEventHook(const TCHAR* pszID, const char* pszModule, int iType, const TCHAR* pszUID, const TCHAR* pszText, DWORD dwItem); BOOL IsEventSupported(int eventType); -BOOL LogToFile(SESSION_INFO* si, GCEVENT * gce); +BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce); void Chat_SetFilters(SESSION_INFO *si); void TSAPI DoFlashAndSoundWorker(FLASH_PARAMS* p); // message.c -char* Chat_Message_GetFromStream(HWND hwndDlg, SESSION_INFO* si); -TCHAR* Chat_DoRtfToTags( char* pszRtfText, SESSION_INFO* si); +char* Chat_Message_GetFromStream(HWND hwndDlg, SESSION_INFO *si); +TCHAR* Chat_DoRtfToTags( char* pszRtfText, SESSION_INFO *si); diff --git a/plugins/TabSRMM/src/chat/clist.cpp b/plugins/TabSRMM/src/chat/clist.cpp index 0d3efc5358..fcdf0730b7 100644 --- a/plugins/TabSRMM/src/chat/clist.cpp +++ b/plugins/TabSRMM/src/chat/clist.cpp @@ -147,7 +147,7 @@ int CList_RoomDoubleclicked(WPARAM wParam, LPARAM lParam) return 0; if (!db_get_ts(hContact, szProto, "ChatRoomID", &dbv)) { - SESSION_INFO* si = SM_FindSession(dbv.ptszVal, szProto); + SESSION_INFO *si = SM_FindSession(dbv.ptszVal, szProto); if (si) { // is the "toggle visibility option set, so we need to close the window? if (si->hWnd != NULL diff --git a/plugins/TabSRMM/src/chat/log.cpp b/plugins/TabSRMM/src/chat/log.cpp index d5d6e8e8f5..551bacb1ca 100644 --- a/plugins/TabSRMM/src/chat/log.cpp +++ b/plugins/TabSRMM/src/chat/log.cpp @@ -954,7 +954,7 @@ static DWORD CALLBACK Log_StreamCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG return 0; } -void Log_StreamInEvent(HWND hwndDlg, LOGINFO* lin, SESSION_INFO* si, bool bRedraw, bool bPhaseTwo) +void Log_StreamInEvent(HWND hwndDlg, LOGINFO* lin, SESSION_INFO *si, bool bRedraw, bool bPhaseTwo) { EDITSTREAM stream; LOGSTREAMDATA streamData; diff --git a/plugins/TabSRMM/src/chat/main.cpp b/plugins/TabSRMM/src/chat/main.cpp index 8fbcdf565d..2891cb5b90 100644 --- a/plugins/TabSRMM/src/chat/main.cpp +++ b/plugins/TabSRMM/src/chat/main.cpp @@ -85,7 +85,6 @@ int Chat_Unload(void) mir_free(pszActiveWndModule); DestroyMenu(g_hMenu); - DestroyServiceFunctions(); DestroyHookableEvents(); FreeIcons(); OptionsUnInit(); diff --git a/plugins/TabSRMM/src/chat/manager.cpp b/plugins/TabSRMM/src/chat/manager.cpp index 344f186c50..e5ea48094f 100644 --- a/plugins/TabSRMM/src/chat/manager.cpp +++ b/plugins/TabSRMM/src/chat/manager.cpp @@ -26,17 +26,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define WINDOWS_COMMANDS_MAX 30 #define STATUSICONCOUNT 6 -SESSION_INFO *m_WndList = 0; -MODULEINFO *m_ModList = 0; +static SESSION_INFO *s_WndList = NULL; +static MODULEINFO *s_ModList = NULL; void SetActiveSession(const TCHAR* pszID, const char* pszModule) { - SESSION_INFO* si = SM_FindSession(pszID, pszModule); + SESSION_INFO *si = SM_FindSession(pszID, pszModule); if (si) SetActiveSessionEx(si); } -void SetActiveSessionEx(SESSION_INFO* si) +void SetActiveSessionEx(SESSION_INFO *si) { if (si) { replaceStr(&pszActiveWndID, si->ptszID); @@ -46,11 +46,11 @@ void SetActiveSessionEx(SESSION_INFO* si) SESSION_INFO* GetActiveSession(void) { - SESSION_INFO* si = SM_FindSession(pszActiveWndID, pszActiveWndModule); + SESSION_INFO *si = SM_FindSession(pszActiveWndID, pszActiveWndModule); if (si) return si; - return m_WndList; + return s_WndList; } //--------------------------------------------------- @@ -64,39 +64,37 @@ SESSION_INFO* SM_AddSession(const TCHAR* pszID, const char* pszModule) if (!pszID || !pszModule) return NULL; - if (!SM_FindSession(pszID, pszModule)) { - SESSION_INFO*node = (SESSION_INFO*) mir_alloc(sizeof(SESSION_INFO)); - ZeroMemory(node, sizeof(SESSION_INFO)); - node->ptszID = mir_tstrdup(pszID); - node->pszModule = mir_strdup(pszModule); + if (SM_FindSession(pszID, pszModule)) + return NULL; - MODULEINFO *mi = MM_FindModule(pszModule); + SESSION_INFO *node = (SESSION_INFO*)mir_calloc(sizeof(SESSION_INFO)); + node->ptszID = mir_tstrdup(pszID); + node->pszModule = mir_strdup(pszModule); - if (mi) { - mi->idleTimeStamp = time(0); - SM_BroadcastMessage(pszModule, GC_UPDATESTATUSBAR, 0, 1, TRUE); - } + MODULEINFO *mi = MM_FindModule(pszModule); + if (mi) { + mi->idleTimeStamp = time(0); + SM_BroadcastMessage(pszModule, GC_UPDATESTATUSBAR, 0, 1, TRUE); + } - if (m_WndList == NULL) { // list is empty - m_WndList = node; - node->next = NULL; - } else { - node->next = m_WndList; - m_WndList = node; - } - node->Highlight = g_Settings.Highlight; - return node; + if (s_WndList == NULL) { // list is empty + s_WndList = node; + node->next = NULL; } - return NULL; + else { + node->next = s_WndList; + s_WndList = node; + } + node->Highlight = g_Settings.Highlight; + return node; } int SM_RemoveSession(const TCHAR* pszID, const char* pszModule, bool removeContact) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; + SESSION_INFO* pTemp = s_WndList, *pLast = NULL; while (pTemp != NULL) { if ((!pszID && pTemp->iType != GCW_SERVER || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { // match COMMAND_INFO *pCurComm; @@ -108,7 +106,7 @@ int SM_RemoveSession(const TCHAR* pszID, const char* pszModule, bool removeConta DoEventHook(pTemp->ptszID, pTemp->pszModule, GC_SESSION_TERMINATE, NULL, NULL, (DWORD)pTemp->dwItemData); if (pLast == NULL) - m_WndList = pTemp->next; + s_WndList = pTemp->next; else pLast->next = pTemp->next; @@ -153,8 +151,9 @@ int SM_RemoveSession(const TCHAR* pszID, const char* pszModule, bool removeConta if (pLast) pTemp = pLast->next; else - pTemp = m_WndList; - } else { + pTemp = s_WndList; + } + else { pLast = pTemp; pTemp = pTemp->next; } @@ -162,189 +161,175 @@ int SM_RemoveSession(const TCHAR* pszID, const char* pszModule, bool removeConta return FALSE; } -SESSION_INFO* SM_FindSession(const TCHAR* pszID, const char* pszModule) +void SM_RemoveContainer(TContainerData *pContainer) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (si->pContainer == pContainer) + si->pContainer = NULL; +} +SESSION_INFO* SM_FindSession(const TCHAR* pszID, const char* pszModule) +{ if (!pszID || !pszModule) return NULL; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) - return pTemp; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (!lstrcmpi(si->ptszID, pszID) && !lstrcmpiA(si->pszModule, pszModule)) + return si; - pLast = pTemp; - pTemp = pTemp->next; - } return NULL; } BOOL SM_SetOffline(const TCHAR* pszID, const char* pszModule) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - UM_RemoveAll(&pTemp->pUsers); - pTemp->nUsersInNicklist = 0; - if (pTemp->iType != GCW_SERVER) - pTemp->bInitDone = FALSE; + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + UM_RemoveAll(&si->pUsers); + si->nUsersInNicklist = 0; + if (si->iType != GCW_SERVER) + si->bInitDone = FALSE; if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } BOOL SM_SetStatusEx(const TCHAR* pszID, const char* pszModule, const TCHAR* pszText, int flags) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - UM_SetStatusEx(pTemp->pUsers, pszText, flags); - if (pTemp->hWnd) - RedrawWindow(GetDlgItem(pTemp->hWnd, IDC_LIST), NULL, NULL, RDW_INVALIDATE); + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + UM_SetStatusEx(si->pUsers, pszText, flags); + if (si->hWnd) + RedrawWindow(GetDlgItem(si->hWnd, IDC_LIST), NULL, NULL, RDW_INVALIDATE); if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } -HICON SM_GetStatusIcon(SESSION_INFO* si, USERINFO* ui, char *szIndicator) +HICON SM_GetStatusIcon(SESSION_INFO *si, USERINFO* ui, char *szIndicator) { - STATUSINFO * ti; if (!ui || !si) return NULL; *szIndicator = 0; - ti = TM_FindStatus(si->pStatuses, TM_WordToString(si->pStatuses, ui->Status)); - if (ti) { - if ((INT_PTR)ti->hIcon < STATUSICONCOUNT) { - int id = si->iStatusCount - (int)ti->hIcon - 1; - if (id == 0) { - *szIndicator = 0; - return hIcons[ICON_STATUS0]; - } - if (id == 1) { - *szIndicator = '+'; - return hIcons[ICON_STATUS1]; - } - if (id == 2) { - *szIndicator = '%'; - return hIcons[ICON_STATUS2]; - } - if (id == 3) { - *szIndicator = '@'; - return hIcons[ICON_STATUS3]; - } - if (id == 4) { - *szIndicator = '!'; - return hIcons[ICON_STATUS4]; - } - if (id == 5) { - *szIndicator = '*'; - return hIcons[ICON_STATUS5]; - } - } else - return ti->hIcon; + STATUSINFO *ti = TM_FindStatus(si->pStatuses, TM_WordToString(si->pStatuses, ui->Status)); + if (ti == NULL) + return hIcons[ICON_STATUS0]; + + if ((INT_PTR)ti->hIcon >= STATUSICONCOUNT) + return ti->hIcon; + + int id = si->iStatusCount - (int)ti->hIcon - 1; + if (id == 0) { + *szIndicator = 0; + return hIcons[ICON_STATUS0]; + } + if (id == 1) { + *szIndicator = '+'; + return hIcons[ICON_STATUS1]; } + if (id == 2) { + *szIndicator = '%'; + return hIcons[ICON_STATUS2]; + } + if (id == 3) { + *szIndicator = '@'; + return hIcons[ICON_STATUS3]; + } + if (id == 4) { + *szIndicator = '!'; + return hIcons[ICON_STATUS4]; + } + if (id == 5) { + *szIndicator = '*'; + return hIcons[ICON_STATUS5]; + } + return hIcons[ICON_STATUS0]; } -BOOL SM_AddEventToAllMatchingUID(GCEVENT * gce, BOOL bIsHighLight) +BOOL SM_AddEventToAllMatchingUID(GCEVENT *gce, BOOL bIsHighLight) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; int bManyFix = 0; - while (pTemp != NULL) { - if (!lstrcmpiA(pTemp->pszModule, gce->pDest->pszModule)) { - if (UM_FindUser(pTemp->pUsers, gce->ptszUID)) { - if (pTemp->bInitDone) { - if (SM_AddEvent(pTemp->ptszID, pTemp->pszModule, gce, FALSE) && pTemp->hWnd && pTemp->bInitDone) { - SendMessage(pTemp->hWnd, GC_ADDLOG, 0, 0); - } else if (pTemp->hWnd && pTemp->bInitDone) { - SendMessage(pTemp->hWnd, GC_REDRAWLOG2, 0, 0); - } + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if (!lstrcmpiA(si->pszModule, gce->pDest->pszModule)) { + if (UM_FindUser(si->pUsers, gce->ptszUID)) { + if (si->bInitDone) { + if (SM_AddEvent(si->ptszID, si->pszModule, gce, FALSE) && si->hWnd && si->bInitDone) + SendMessage(si->hWnd, GC_ADDLOG, 0, 0); + else if (si->hWnd && si->bInitDone) + SendMessage(si->hWnd, GC_REDRAWLOG2, 0, 0); + if (!(gce->dwFlags & GCEF_NOTNOTIFY)) - DoSoundsFlashPopupTrayStuff(pTemp, gce, bIsHighLight, bManyFix); + DoSoundsFlashPopupTrayStuff(si, gce, bIsHighLight, bManyFix); bManyFix ++; if ((gce->dwFlags & GCEF_ADDTOLOG) && g_Settings.bLoggingEnabled) - LogToFile(pTemp, gce); + LogToFile(si, gce); } } } - - pLast = pTemp; - pTemp = pTemp->next; } return 0; } -BOOL SM_AddEvent(const TCHAR* pszID, const char* pszModule, GCEVENT * gce, BOOL bIsHighlighted) +BOOL SM_AddEvent(const TCHAR* pszID, const char* pszModule, GCEVENT *gce, BOOL bIsHighlighted) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return TRUE; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - LOGINFO * li = LM_AddEvent(&pTemp->pLog, &pTemp->pLogEnd); - pTemp->iEventCount += 1; - - li->iType = gce->pDest->iType; - li->ptszNick = mir_tstrdup(gce->ptszNick); - li->ptszText = mir_tstrdup(gce->ptszText); - li->ptszStatus = mir_tstrdup(gce->ptszStatus); - li->ptszUserInfo = mir_tstrdup(gce->ptszUserInfo); - - li->bIsMe = gce->bIsMe != 0; - li->bIsHighlighted = bIsHighlighted != 0; - li->time = gce->time; - - if (g_Settings.iEventLimit > 0 && pTemp->iEventCount > g_Settings.iEventLimit + g_Settings.iEventLimitThreshold) { - LM_TrimLog(&pTemp->pLog, &pTemp->pLogEnd, pTemp->iEventCount - g_Settings.iEventLimit); - pTemp->wasTrimmed = TRUE; - pTemp->iEventCount = g_Settings.iEventLimit; - } - return TRUE; + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return TRUE; + + if (!lstrcmpi(si->ptszID, pszID) && !lstrcmpiA(si->pszModule, pszModule)) { + LOGINFO *li = LM_AddEvent(&si->pLog, &si->pLogEnd); + si->iEventCount += 1; + + li->iType = gce->pDest->iType; + li->ptszNick = mir_tstrdup(gce->ptszNick); + li->ptszText = mir_tstrdup(gce->ptszText); + li->ptszStatus = mir_tstrdup(gce->ptszStatus); + li->ptszUserInfo = mir_tstrdup(gce->ptszUserInfo); + + li->bIsMe = gce->bIsMe != 0; + li->bIsHighlighted = bIsHighlighted != 0; + li->time = gce->time; + + if (g_Settings.iEventLimit > 0 && si->iEventCount > g_Settings.iEventLimit + g_Settings.iEventLimitThreshold) { + LM_TrimLog(&si->pLog, &si->pLogEnd, si->iEventCount - g_Settings.iEventLimit); + si->wasTrimmed = TRUE; + si->iEventCount = g_Settings.iEventLimit; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } -USERINFO * SM_AddUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszNick, WORD wStatus) +USERINFO* SM_AddUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszNick, WORD wStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return NULL; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO * p = UM_AddUser(pTemp->pStatuses, &pTemp->pUsers, pszUID, pszNick, wStatus); - pTemp->nUsersInNicklist++; - return p; - } - pLast = pTemp; - pTemp = pTemp->next; + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si) { + USERINFO *p = UM_AddUser(si->pStatuses, &si->pUsers, pszUID, pszNick, wStatus); + si->nUsersInNicklist++; + return p; } return 0; @@ -352,245 +337,183 @@ USERINFO * SM_AddUser(const TCHAR* pszID, const char* pszModule, const TCHAR* ps BOOL SM_MoveUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID) { - SESSION_INFO* pTemp = m_WndList; - if (!pszID || !pszModule || !pszUID) return FALSE; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - UM_SortUser(&pTemp->pUsers, pszUID); - return TRUE; - } - pTemp = pTemp->next; - } + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return FALSE; - return FALSE; + UM_SortUser(&si->pUsers, pszUID); + return TRUE; } BOOL SM_RemoveUser(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule || !pszUID) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { DWORD dw; - USERINFO * ui = UM_FindUser(pTemp->pUsers, pszUID); + USERINFO *ui = UM_FindUser(si->pUsers, pszUID); if (ui) { - pTemp->nUsersInNicklist--; + si->nUsersInNicklist--; - dw = UM_RemoveUser(&pTemp->pUsers, pszUID); + dw = UM_RemoveUser(&si->pUsers, pszUID); - if (pTemp->hWnd) - SendMessage(pTemp->hWnd, GC_UPDATENICKLIST, 0, 0); + if (si->hWnd) + SendMessage(si->hWnd, GC_UPDATENICKLIST, 0, 0); if (pszID) return TRUE; } } - - pLast = pTemp; - pTemp = pTemp->next; } return 0; } -USERINFO * SM_GetUserFromIndex(const TCHAR* pszID, const char* pszModule, int index) +USERINFO* SM_GetUserFromIndex(const TCHAR* pszID, const char* pszModule, int index) { - SESSION_INFO* pTemp = m_WndList; - if (!pszModule) - return FALSE; + return NULL; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) - return UM_FindUserFromIndex(pTemp->pUsers, index); - pTemp = pTemp->next; - } + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return NULL; - return NULL; + return UM_FindUserFromIndex(si->pUsers, index); } - -STATUSINFO * SM_AddStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszStatus) +STATUSINFO* SM_AddStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return NULL; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - STATUSINFO* ti = TM_AddStatus(&pTemp->pStatuses, pszStatus, &pTemp->iStatusCount); - if (ti) - pTemp->iStatusCount++; - return ti; - } - pLast = pTemp; - pTemp = pTemp->next; - } + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return NULL; - return 0; + STATUSINFO *ti = TM_AddStatus(&si->pStatuses, pszStatus, &si->iStatusCount); + if (ti) + si->iStatusCount++; + return ti; } BOOL SM_GiveStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return FALSE; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO * ui = UM_GiveStatus(pTemp->pUsers, pszUID, TM_StringToWord(pTemp->pStatuses, pszStatus)); - if (ui) { - SM_MoveUser(pTemp->ptszID, pTemp->pszModule, ui->pszUID); - if (pTemp->hWnd) - SendMessage(pTemp->hWnd, GC_UPDATENICKLIST, 0, 0); - } - return TRUE; - } - pLast = pTemp; - pTemp = pTemp->next; + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return FALSE; + + USERINFO *ui = UM_GiveStatus(si->pUsers, pszUID, TM_StringToWord(si->pStatuses, pszStatus)); + if (ui) { + SM_MoveUser(si->ptszID, si->pszModule, ui->pszUID); + if (si->hWnd) + SendMessage(si->hWnd, GC_UPDATENICKLIST, 0, 0); } - - return FALSE; + return TRUE; } BOOL SM_SetContactStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, WORD wStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return FALSE; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO * ui = UM_SetContactStatus(pTemp->pUsers, pszUID, wStatus); - if (ui) { - SM_MoveUser(pTemp->ptszID, pTemp->pszModule, ui->pszUID); - if (pTemp->hWnd) - SendMessage(pTemp->hWnd, GC_UPDATENICKLIST, 0, 0); - } - return TRUE; - } - pLast = pTemp; - pTemp = pTemp->next; - } + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return FALSE; - return FALSE; + USERINFO *ui = UM_SetContactStatus(si->pUsers, pszUID, wStatus); + if (ui) { + SM_MoveUser(si->ptszID, si->pszModule, ui->pszUID); + if (si->hWnd) + SendMessage(si->hWnd, GC_UPDATENICKLIST, 0, 0); + } + return TRUE; } BOOL SM_TakeStatus(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return FALSE; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO* ui = UM_TakeStatus(pTemp->pUsers, pszUID, TM_StringToWord(pTemp->pStatuses, pszStatus)); - if (ui) { - SM_MoveUser(pTemp->ptszID, pTemp->pszModule, ui->pszUID); - if (pTemp->hWnd) - SendMessage(pTemp->hWnd, GC_UPDATENICKLIST, 0, 0); - } - return TRUE; - } - pLast = pTemp; - pTemp = pTemp->next; - } + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return FALSE; - return FALSE; + USERINFO* ui = UM_TakeStatus(si->pUsers, pszUID, TM_StringToWord(si->pStatuses, pszStatus)); + if (ui) { + SM_MoveUser(si->ptszID, si->pszModule, ui->pszUID); + if (si->hWnd) + SendMessage(si->hWnd, GC_UPDATENICKLIST, 0, 0); + } + return TRUE; } + LRESULT SM_SendMessage(const TCHAR* pszID, const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - - while (pTemp && pszModule) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - if (pTemp->hWnd) { - LRESULT i = SendMessage(pTemp->hWnd, msg, wParam, lParam); + for (SESSION_INFO *si = s_WndList; si && pszModule; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + if (si->hWnd) { + LRESULT i = SendMessage(si->hWnd, msg, wParam, lParam); if (pszID) return i; } if (pszID) return 0; } - pLast = pTemp; - pTemp = pTemp->next; } + return 0; } BOOL SM_PostMessage(const TCHAR* pszID, const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszID || !pszModule) return 0; - while (pTemp != NULL) { - if (!lstrcmpi(pTemp->ptszID, pszID) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - if (pTemp->hWnd) - return PostMessage(pTemp->hWnd, msg, wParam, lParam); + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si && si->hWnd) + return PostMessage(si->hWnd, msg, wParam, lParam); - return FALSE; - } - pLast = pTemp; - pTemp = pTemp->next; - } return FALSE; } BOOL SM_BroadcastMessage(const char* pszModule, UINT msg, WPARAM wParam, LPARAM lParam, BOOL bAsync) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - - while (pTemp != NULL) { - if (!pszModule || !lstrcmpiA(pTemp->pszModule, pszModule)) { - if (pTemp->hWnd) { + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if (!pszModule || !lstrcmpiA(si->pszModule, pszModule)) { + if (si->hWnd) { if (bAsync) - PostMessage(pTemp->hWnd, msg, wParam, lParam); + PostMessage(si->hWnd, msg, wParam, lParam); else - SendMessage(pTemp->hWnd, msg, wParam, lParam); + SendMessage(si->hWnd, msg, wParam, lParam); } - } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } BOOL SM_ReconfigureFilters() { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + Chat_SetFilters(si); - while (pTemp != NULL) { - Chat_SetFilters(pTemp); - pLast = pTemp; - pTemp = pTemp->next; - } return TRUE; } BOOL SM_InvalidateLogDirectories() { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - EnterCriticalSection(&cs); - while (pTemp != NULL) { - pTemp->pszLogFileName[0] = 0; - pLast = pTemp; - pTemp = pTemp->next; - } + for (SESSION_INFO *si = s_WndList; si; si = si->next) + si->pszLogFileName[0] = 0; LeaveCriticalSection(&cs); return TRUE; @@ -598,163 +521,151 @@ BOOL SM_InvalidateLogDirectories() BOOL SM_SetStatus(const TCHAR* pszID, const char* pszModule, int wStatus) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - pTemp->wStatus = wStatus; + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + si->wStatus = wStatus; - if (pTemp->hContact) { - if (pTemp->iType != GCW_SERVER && wStatus != ID_STATUS_OFFLINE) - db_unset(pTemp->hContact, "CList", "Hidden"); + if (si->hContact) { + if (si->iType != GCW_SERVER && wStatus != ID_STATUS_OFFLINE) + db_unset(si->hContact, "CList", "Hidden"); - db_set_w(pTemp->hContact, pTemp->pszModule, "Status", (WORD)wStatus); + db_set_w(si->hContact, si->pszModule, "Status", (WORD)wStatus); } if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } BOOL SM_SendUserMessage(const TCHAR* pszID, const char* pszModule, const TCHAR* pszText) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule || !pszText) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - if (pTemp->iType == GCW_CHATROOM) - DoEventHook(pTemp->ptszID, pTemp->pszModule, GC_USER_MESSAGE, NULL, pszText, 0); + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + if (si->iType == GCW_CHATROOM) + DoEventHook(si->ptszID, si->pszModule, GC_USER_MESSAGE, NULL, pszText, 0); if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } BOOL SM_ChangeUID(const TCHAR* pszID, const char* pszModule, const TCHAR* pszUID, const TCHAR* pszNewUID) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO* ui = UM_FindUser(pTemp->pUsers, pszUID); + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + USERINFO* ui = UM_FindUser(si->pUsers, pszUID); if (ui) replaceStr(&ui->pszUID, pszNewUID); if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } -BOOL SM_ChangeNick(const TCHAR* pszID, const char* pszModule, GCEVENT * gce) +BOOL SM_ChangeNick(const TCHAR* pszID, const char* pszModule, GCEVENT *gce) { - SESSION_INFO* pTemp = m_WndList, *pLast = NULL; - if (!pszModule) return FALSE; - while (pTemp != NULL) { - if ((!pszID || !lstrcmpi(pTemp->ptszID, pszID)) && !lstrcmpiA(pTemp->pszModule, pszModule)) { - USERINFO* ui = UM_FindUser(pTemp->pUsers, gce->ptszUID); + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if ((!pszID || !lstrcmpi(si->ptszID, pszID)) && !lstrcmpiA(si->pszModule, pszModule)) { + USERINFO* ui = UM_FindUser(si->pUsers, gce->ptszUID); if (ui) { replaceStr(&ui->pszNick, gce->ptszText); - SM_MoveUser(pTemp->ptszID, pTemp->pszModule, ui->pszUID); - if (pTemp->hWnd) { - SendMessage(pTemp->hWnd, GC_UPDATENICKLIST, 0, 0); - if (pTemp->dat) - GetMyNick(pTemp->dat); - SendMessage(pTemp->hWnd, GC_UPDATESTATUSBAR, 0, 0); + SM_MoveUser(si->ptszID, si->pszModule, ui->pszUID); + if (si->hWnd) { + SendMessage(si->hWnd, GC_UPDATENICKLIST, 0, 0); + if (si->dat) + GetMyNick(si->dat); + SendMessage(si->hWnd, GC_UPDATESTATUSBAR, 0, 0); } } if (pszID) return TRUE; } - pLast = pTemp; - pTemp = pTemp->next; } + return TRUE; } + BOOL SM_RemoveAll(void) { - while (m_WndList) { - SESSION_INFO*pLast = m_WndList->next; - - if (m_WndList->hWnd) - SendMessage(m_WndList->hWnd, GC_EVENT_CONTROL + WM_USER + 500, SESSION_TERMINATE, 0); - DoEventHook(m_WndList->ptszID, m_WndList->pszModule, GC_SESSION_TERMINATE, NULL, NULL, (DWORD)m_WndList->dwItemData); - if (m_WndList->hContact) - CList_SetOffline(m_WndList->hContact, m_WndList->iType == GCW_CHATROOM ? TRUE : FALSE); - db_set_s(m_WndList->hContact, m_WndList->pszModule , "Topic", ""); - db_unset(m_WndList->hContact, "CList", "StatusMsg"); - db_set_s(m_WndList->hContact, m_WndList->pszModule, "StatusBar", ""); - - UM_RemoveAll(&m_WndList->pUsers); - TM_RemoveAll(&m_WndList->pStatuses); - LM_RemoveAll(&m_WndList->pLog, &m_WndList->pLogEnd); - m_WndList->iStatusCount = 0; - m_WndList->nUsersInNicklist = 0; - - mir_free(m_WndList->pszModule); - mir_free(m_WndList->ptszID); - mir_free(m_WndList->ptszName); - mir_free(m_WndList->ptszStatusbarText); - mir_free(m_WndList->ptszTopic); - - while (m_WndList->lpCommands != NULL) { - COMMAND_INFO *pNext = m_WndList->lpCommands->next; - mir_free(m_WndList->lpCommands->lpCommand); - mir_free(m_WndList->lpCommands); - m_WndList->lpCommands = pNext; + while (s_WndList) { + SESSION_INFO *pLast = s_WndList->next; + + if (s_WndList->hWnd) + SendMessage(s_WndList->hWnd, GC_EVENT_CONTROL + WM_USER + 500, SESSION_TERMINATE, 0); + DoEventHook(s_WndList->ptszID, s_WndList->pszModule, GC_SESSION_TERMINATE, NULL, NULL, (DWORD)s_WndList->dwItemData); + if (s_WndList->hContact) + CList_SetOffline(s_WndList->hContact, s_WndList->iType == GCW_CHATROOM ? TRUE : FALSE); + db_set_s(s_WndList->hContact, s_WndList->pszModule , "Topic", ""); + db_unset(s_WndList->hContact, "CList", "StatusMsg"); + db_set_s(s_WndList->hContact, s_WndList->pszModule, "StatusBar", ""); + + UM_RemoveAll(&s_WndList->pUsers); + TM_RemoveAll(&s_WndList->pStatuses); + LM_RemoveAll(&s_WndList->pLog, &s_WndList->pLogEnd); + s_WndList->iStatusCount = 0; + s_WndList->nUsersInNicklist = 0; + + mir_free(s_WndList->pszModule); + mir_free(s_WndList->ptszID); + mir_free(s_WndList->ptszName); + mir_free(s_WndList->ptszStatusbarText); + mir_free(s_WndList->ptszTopic); + + while (s_WndList->lpCommands != NULL) { + COMMAND_INFO *pNext = s_WndList->lpCommands->next; + mir_free(s_WndList->lpCommands->lpCommand); + mir_free(s_WndList->lpCommands); + s_WndList->lpCommands = pNext; } - mir_free(m_WndList); - m_WndList = pLast; + mir_free(s_WndList); + s_WndList = pLast; } - m_WndList = NULL; + s_WndList = NULL; return TRUE; } void SM_AddCommand(const TCHAR* pszID, const char* pszModule, const char* lpNewCommand) { - SESSION_INFO* pTemp = m_WndList; - while (pTemp != NULL) { - if (lstrcmpi(pTemp->ptszID, pszID) == 0 && lstrcmpiA(pTemp->pszModule, pszModule) == 0) { // match + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if (lstrcmpi(si->ptszID, pszID) == 0 && lstrcmpiA(si->pszModule, pszModule) == 0) { // match COMMAND_INFO *node = (COMMAND_INFO *)mir_alloc(sizeof(COMMAND_INFO)); node->lpCommand = mir_strdup(lpNewCommand); node->last = NULL; // always added at beginning! // new commands are added at start - if (pTemp->lpCommands == NULL) { + if (si->lpCommands == NULL) { node->next = NULL; - pTemp->lpCommands = node; + si->lpCommands = node; } else { - node->next = pTemp->lpCommands; - pTemp->lpCommands->last = node; // hmm, weird - pTemp->lpCommands = node; + node->next = si->lpCommands; + si->lpCommands->last = node; // hmm, weird + si->lpCommands = node; } - pTemp->lpCurrentCommand = NULL; // current command - pTemp->wCommandsNum++; + si->lpCurrentCommand = NULL; // current command + si->wCommandsNum++; - if (pTemp->wCommandsNum > WINDOWS_COMMANDS_MAX) { - COMMAND_INFO *pCurComm = pTemp->lpCommands; + if (si->wCommandsNum > WINDOWS_COMMANDS_MAX) { + COMMAND_INFO *pCurComm = si->lpCommands; COMMAND_INFO *pLast; while (pCurComm->next != NULL) { pCurComm = pCurComm->next; @@ -764,171 +675,141 @@ void SM_AddCommand(const TCHAR* pszID, const char* pszModule, const char* lpNewC mir_free(pCurComm); pLast->next = NULL; // done - pTemp->wCommandsNum--; + si->wCommandsNum--; } } - pTemp = pTemp->next; } } char* SM_GetPrevCommand(const TCHAR* pszID, const char* pszModule) // get previous command. returns NULL if previous command does not exist. current command remains as it was. { - SESSION_INFO* pTemp = m_WndList; - while (pTemp != NULL) { - if (lstrcmpi(pTemp->ptszID, pszID) == 0 && lstrcmpiA(pTemp->pszModule, pszModule) == 0) { // match - COMMAND_INFO *pPrevCmd = NULL; - if (pTemp->lpCurrentCommand != NULL) { - if (pTemp->lpCurrentCommand->next != NULL) // not NULL - pPrevCmd = pTemp->lpCurrentCommand->next; // next command (newest at beginning) - else - pPrevCmd = pTemp->lpCurrentCommand; - } else pPrevCmd = pTemp->lpCommands; - - pTemp->lpCurrentCommand = pPrevCmd; // make it the new command - return(((pPrevCmd) ? (pPrevCmd->lpCommand) : (NULL))); - } - pTemp = pTemp->next; + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return NULL; + + COMMAND_INFO *pPrevCmd = NULL; + if (si->lpCurrentCommand != NULL) { + if (si->lpCurrentCommand->next != NULL) // not NULL + pPrevCmd = si->lpCurrentCommand->next; // next command (newest at beginning) + else + pPrevCmd = si->lpCurrentCommand; } - return(NULL); + else pPrevCmd = si->lpCommands; + + si->lpCurrentCommand = pPrevCmd; // make it the new command + return pPrevCmd ? pPrevCmd->lpCommand : NULL; } char* SM_GetNextCommand(const TCHAR* pszID, const char* pszModule) // get next command. returns NULL if next command does not exist. current command becomes NULL (a prev command after this one will get you the last command) { - SESSION_INFO* pTemp = m_WndList; - while (pTemp != NULL) { - if (lstrcmpi(pTemp->ptszID, pszID) == 0 && lstrcmpiA(pTemp->pszModule, pszModule) == 0) { // match - COMMAND_INFO *pNextCmd = NULL; - if (pTemp->lpCurrentCommand != NULL) - pNextCmd = pTemp->lpCurrentCommand->last; // last command (newest at beginning) + SESSION_INFO *si = SM_FindSession(pszID, pszModule); + if (si == NULL) + return NULL; - pTemp->lpCurrentCommand = pNextCmd; // make it the new command - return(((pNextCmd) ? (pNextCmd->lpCommand) : (NULL))); - } - pTemp = pTemp->next; - } - return(NULL); + COMMAND_INFO *pNextCmd = NULL; + if (si->lpCurrentCommand != NULL) + pNextCmd = si->lpCurrentCommand->last; // last command (newest at beginning) + + si->lpCurrentCommand = pNextCmd; // make it the new command + return pNextCmd ? pNextCmd->lpCommand : NULL; } int SM_GetCount(const char* pszModule) { - SESSION_INFO* pTemp = m_WndList; int count = 0; - while (pTemp != NULL) { - if (!lstrcmpiA(pszModule, pTemp->pszModule)) + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (!lstrcmpiA(pszModule, si->pszModule)) count++; - pTemp = pTemp->next; - } return count; } SESSION_INFO* SM_FindSessionByHWND(HWND hWnd) { - SESSION_INFO *pTemp = m_WndList; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (si->hWnd == hWnd) + return si; - while (pTemp) { - if (pTemp->hWnd == hWnd) - return pTemp; - pTemp = pTemp->next; - } return NULL; } -SESSION_INFO * SM_FindSessionByHCONTACT(HANDLE h) +SESSION_INFO* SM_FindSessionByHCONTACT(HANDLE h) { - SESSION_INFO *pTemp = m_WndList; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (si->hContact == h) + return si; - while (pTemp) { - if (pTemp->hContact == h) - return pTemp; - pTemp = pTemp->next; - } return NULL; } SESSION_INFO* SM_FindSessionByIndex(const char* pszModule, int iItem) { - SESSION_INFO* pTemp = m_WndList; int count = 0; - while (pTemp != NULL) { - if (!lstrcmpiA(pszModule, pTemp->pszModule)) { + for (SESSION_INFO *si = s_WndList; si; si = si->next) { + if (!lstrcmpiA(pszModule, si->pszModule)) { if (iItem == count) - return pTemp; - else - count++; - } + return si; - pTemp = pTemp->next; + count++; + } } + return NULL; } SESSION_INFO* SM_FindSessionAutoComplete(const char* pszModule, SESSION_INFO* currSession, SESSION_INFO* prevSession, const TCHAR* pszOriginal, const TCHAR* pszCurrent) { - SESSION_INFO* pResult = NULL; - if (prevSession == NULL && my_strstri(currSession->ptszName, pszOriginal) == currSession->ptszName) { - pResult = currSession; - } else { - TCHAR* pszName = NULL; - SESSION_INFO* pTemp = m_WndList; - if (currSession == prevSession) { - pszCurrent = pszOriginal; - } - while (pTemp != NULL) { - if (pTemp != currSession && !lstrcmpiA(pszModule, pTemp->pszModule)) { - if (my_strstri(pTemp->ptszName, pszOriginal) == pTemp->ptszName) { - if (prevSession != pTemp && lstrcmpi(pTemp->ptszName, pszCurrent) > 0 && (!pszName || lstrcmpi(pTemp->ptszName, pszName) < 0)) { - pResult = pTemp; - pszName = pTemp->ptszName; - } + if (prevSession == NULL && my_strstri(currSession->ptszName, pszOriginal) == currSession->ptszName) + return currSession; + + TCHAR* pszName = NULL; + if (currSession == prevSession) + pszCurrent = pszOriginal; + + SESSION_INFO *pResult = NULL; + for (SESSION_INFO *si = s_WndList; si; si = si->next) + if (si != currSession && !lstrcmpiA(pszModule, si->pszModule)) + if (my_strstri(si->ptszName, pszOriginal) == si->ptszName) + if (prevSession != si && lstrcmpi(si->ptszName, pszCurrent) > 0 && (!pszName || lstrcmpi(si->ptszName, pszName) < 0)) { + pResult = si; + pszName = si->ptszName; } - } - pTemp = pTemp->next; - } - } - return pResult; + return pResult; } -char* SM_GetUsers(SESSION_INFO* si) +char* SM_GetUsers(SESSION_INFO *si) { - SESSION_INFO* pTemp = m_WndList; - USERINFO* utemp; - int count = 0; - char* p = NULL; - int alloced = 0; - if (si == NULL) return NULL; - while (pTemp != NULL) { - if (si == pTemp) { - if ((utemp = pTemp->pUsers) == NULL) - return NULL; + for (SESSION_INFO *psi = s_WndList; psi; psi = psi->next) + if (psi == si) + goto LBL_Found; + return NULL; - break; - } - pTemp = pTemp->next; - } +LBL_Found: + USERINFO *utemp = si->pUsers; + if (utemp == NULL) + return NULL; - do { + char* p = NULL; + int alloced = 0; + + while (utemp != NULL) { int pLen = lstrlenA(p), nameLen = lstrlen(utemp->pszUID); if (pLen + nameLen + 2 > alloced) p = (char *)mir_realloc(p, alloced += 4096); WideCharToMultiByte(CP_ACP, 0, utemp->pszUID, -1, p + pLen, nameLen + 1, 0, 0); lstrcpyA(p + pLen + nameLen, " "); utemp = utemp->next; - } while (utemp != NULL); + } + return p; } - - - - - //--------------------------------------------------- // Module Manager functions // @@ -947,60 +828,31 @@ MODULEINFO* MM_AddModule(const char* pszModule) node->pszModule = (char*)mir_alloc(lstrlenA(pszModule) + 1); lstrcpyA(node->pszModule, pszModule); node->idleTimeStamp = time(0); - if (m_ModList == NULL) { // list is empty - m_ModList = node; + if (s_ModList == NULL) { // list is empty + s_ModList = node; node->next = NULL; } else { - node->next = m_ModList; - m_ModList = node; + node->next = s_ModList; + s_ModList = node; } return node; } return FALSE; } -/* -void MM_IconsChanged(void) -{ - MODULEINFO *pTemp = m_ModList, *pLast = NULL; - while (pTemp != NULL) { - if (pTemp->hOfflineIcon) - DestroyIcon(pTemp->hOfflineIcon); - if (pTemp->hOnlineIcon) - DestroyIcon(pTemp->hOnlineIcon); - if (pTemp->hOnlineTalkIcon) - DestroyIcon(pTemp->hOnlineTalkIcon); - if (pTemp->hOfflineTalkIcon) - DestroyIcon(pTemp->hOfflineTalkIcon); - - pTemp->hOfflineIcon = ImageList_GetIcon(hIconsList, pTemp->OfflineIconIndex, ILD_TRANSPARENT); - pTemp->hOnlineIcon = ImageList_GetIcon(hIconsList, pTemp->OnlineIconIndex, ILD_TRANSPARENT); - - pTemp->hOnlineTalkIcon = ImageList_GetIcon(hIconsList, pTemp->OnlineIconIndex, ILD_TRANSPARENT|INDEXTOOVERLAYMASK(1)); - ImageList_ReplaceIcon(hIconsList, pTemp->OnlineIconIndex+1, pTemp->hOnlineTalkIcon); - - pTemp->hOfflineTalkIcon = ImageList_GetIcon(hIconsList, pTemp->OfflineIconIndex, ILD_TRANSPARENT|INDEXTOOVERLAYMASK(1)); - ImageList_ReplaceIcon(hIconsList, pTemp->OfflineIconIndex+1, pTemp->hOfflineTalkIcon); - - pLast = pTemp; - pTemp = pTemp->next; - } - return; -} -*/ - void MM_FontsChanged(void) { - MODULEINFO *pTemp = m_ModList; + MODULEINFO *pTemp = s_ModList; while (pTemp != NULL) { pTemp->pszHeader = Log_CreateRtfHeader(pTemp); pTemp = pTemp->next; } return; } + MODULEINFO* MM_FindModule(const char* pszModule) { - MODULEINFO *pTemp = m_ModList, *pLast = NULL; + MODULEINFO *pTemp = s_ModList; if (!pszModule) return NULL; @@ -1009,7 +861,6 @@ MODULEINFO* MM_FindModule(const char* pszModule) if (lstrcmpiA(pTemp->pszModule, pszModule) == 0) return pTemp; - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1018,7 +869,7 @@ MODULEINFO* MM_FindModule(const char* pszModule) // stupid thing.. void MM_FixColors() { - MODULEINFO *pTemp = m_ModList; + MODULEINFO *pTemp = s_ModList; while (pTemp != NULL) { CheckColorsInModule(pTemp->pszModule); @@ -1029,18 +880,18 @@ void MM_FixColors() BOOL MM_RemoveAll(void) { - while (m_ModList != NULL) { - MODULEINFO *pLast = m_ModList->next; - mir_free(m_ModList->pszModule); - mir_free(m_ModList->ptszModDispName); - if (m_ModList->pszHeader) - mir_free(m_ModList->pszHeader); - mir_free(m_ModList->crColors); + while (s_ModList != NULL) { + MODULEINFO *pLast = s_ModList->next; + mir_free(s_ModList->pszModule); + mir_free(s_ModList->ptszModDispName); + if (s_ModList->pszHeader) + mir_free(s_ModList->pszHeader); + mir_free(s_ModList->crColors); - mir_free(m_ModList); - m_ModList = pLast; + mir_free(s_ModList); + s_ModList = pLast; } - m_ModList = NULL; + s_ModList = NULL; return TRUE; } @@ -1081,7 +932,7 @@ STATUSINFO * TM_AddStatus(STATUSINFO** ppStatusList, const TCHAR* pszStatus, int STATUSINFO * TM_FindStatus(STATUSINFO* pStatusList, const TCHAR* pszStatus) { - STATUSINFO *pTemp = pStatusList, *pLast = NULL; + STATUSINFO *pTemp = pStatusList; if (!pStatusList || !pszStatus) return NULL; @@ -1090,7 +941,6 @@ STATUSINFO * TM_FindStatus(STATUSINFO* pStatusList, const TCHAR* pszStatus) if (lstrcmpi(pTemp->pszGroup, pszStatus) == 0) return pTemp; - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1098,7 +948,7 @@ STATUSINFO * TM_FindStatus(STATUSINFO* pStatusList, const TCHAR* pszStatus) WORD TM_StringToWord(STATUSINFO* pStatusList, const TCHAR* pszStatus) { - STATUSINFO *pTemp = pStatusList, *pLast = NULL; + STATUSINFO *pTemp = pStatusList; if (!pStatusList || !pszStatus) return 0; @@ -1110,7 +960,6 @@ WORD TM_StringToWord(STATUSINFO* pStatusList, const TCHAR* pszStatus) if (pTemp->next == NULL) return pStatusList->Status; - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1118,7 +967,7 @@ WORD TM_StringToWord(STATUSINFO* pStatusList, const TCHAR* pszStatus) TCHAR* TM_WordToString(STATUSINFO* pStatusList, WORD Status) { - STATUSINFO *pTemp = pStatusList, *pLast = NULL; + STATUSINFO *pTemp = pStatusList; if (!pStatusList) return NULL; @@ -1129,7 +978,6 @@ TCHAR* TM_WordToString(STATUSINFO* pStatusList, WORD Status) if (Status == 0) return pTemp->pszGroup; } - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1292,7 +1140,7 @@ USERINFO* UM_AddUser(STATUSINFO* pStatusList, USERINFO** ppUserList, const TCHAR USERINFO* UM_FindUser(USERINFO* pUserList, const TCHAR* pszUID) { - USERINFO *pTemp = pUserList, *pLast = NULL; + USERINFO *pTemp = pUserList; if (!pUserList || !pszUID) return NULL; @@ -1301,7 +1149,6 @@ USERINFO* UM_FindUser(USERINFO* pUserList, const TCHAR* pszUID) if (!lstrcmpi(pTemp->pszUID, pszUID)) return pTemp; - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1327,7 +1174,7 @@ USERINFO* UM_FindUserFromIndex(USERINFO* pUserList, int index) USERINFO* UM_GiveStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) { - USERINFO *pTemp = pUserList, *pLast = NULL; + USERINFO *pTemp = pUserList; if (!pUserList || !pszUID) return NULL; @@ -1337,7 +1184,6 @@ USERINFO* UM_GiveStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) pTemp->Status |= status; return pTemp; } - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1345,7 +1191,7 @@ USERINFO* UM_GiveStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) USERINFO* UM_SetContactStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) { - USERINFO *pTemp = pUserList, *pLast = NULL; + USERINFO *pTemp = pUserList; if (!pUserList || !pszUID) return NULL; @@ -1355,7 +1201,6 @@ USERINFO* UM_SetContactStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD sta pTemp->ContactStatus = status; return pTemp; } - pLast = pTemp; pTemp = pTemp->next; } return 0; @@ -1393,7 +1238,7 @@ BOOL UM_SetStatusEx(USERINFO* pUserList, const TCHAR* pszText, int flags) USERINFO* UM_TakeStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) { - USERINFO *pTemp = pUserList, *pLast = NULL; + USERINFO *pTemp = pUserList; if (!pUserList || !pszUID) return NULL; @@ -1403,7 +1248,6 @@ USERINFO* UM_TakeStatus(USERINFO* pUserList, const TCHAR* pszUID, WORD status) pTemp->Status &= ~status; return pTemp; } - pLast = pTemp; pTemp = pTemp->next; } return 0; diff --git a/plugins/TabSRMM/src/chat/message.cpp b/plugins/TabSRMM/src/chat/message.cpp index c42710c406..7195c26567 100644 --- a/plugins/TabSRMM/src/chat/message.cpp +++ b/plugins/TabSRMM/src/chat/message.cpp @@ -23,7 +23,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "..\commonheaders.h" -static int RTFColorToIndex(int *pIndex, int iCol, SESSION_INFO* si) +static int RTFColorToIndex(int *pIndex, int iCol, SESSION_INFO *si) { int i; MODULEINFO * pMod = MM_FindModule(si->pszModule); @@ -35,7 +35,7 @@ static int RTFColorToIndex(int *pIndex, int iCol, SESSION_INFO* si) return -1; } -static void CreateColorMap(char* Text, int *pIndex, SESSION_INFO* si) +static void CreateColorMap(char* Text, int *pIndex, SESSION_INFO *si) { char *p1, *p2, *pEnd; int iIndex = 1; @@ -79,7 +79,7 @@ static int ReadInteger(const char* p, int* result) return i; } -TCHAR* Chat_DoRtfToTags(char* pszText, SESSION_INFO* si) +TCHAR* Chat_DoRtfToTags(char* pszText, SESSION_INFO *si) { int i, iRemoveChars, cp = CP_ACP; char InsertThis[50]; @@ -314,7 +314,7 @@ static DWORD CALLBACK Chat_Message_StreamCallback(DWORD_PTR dwCookie, LPBYTE pbB return 0; } -char* Chat_Message_GetFromStream(HWND hwndDlg, SESSION_INFO* si) +char* Chat_Message_GetFromStream(HWND hwndDlg, SESSION_INFO *si) { EDITSTREAM stream; char* pszText = NULL; diff --git a/plugins/TabSRMM/src/chat/options.cpp b/plugins/TabSRMM/src/chat/options.cpp index b1e88ead66..e905eef4a0 100644 --- a/plugins/TabSRMM/src/chat/options.cpp +++ b/plugins/TabSRMM/src/chat/options.cpp @@ -1257,7 +1257,6 @@ void LoadGlobalSettings(void) g_Settings.bOpenInDefault = M.GetBool("Chat", "DefaultContainer", true); g_Settings.bFlashWindow = M.GetBool("Chat", "FlashWindow", false); g_Settings.bFlashWindowHightlight = M.GetBool("Chat", "FlashWindowHighlight", false); - g_Settings.bHighlightEnabled = M.GetBool("Chat", "HighlightEnabled", true); g_Settings.UserListColors[CHAT_STATUS_NORMAL] = M.GetDword(CHAT_FONTMODULE, "Font18Col", RGB(0, 0, 0)); g_Settings.UserListColors[CHAT_STATUS_AWAY] = M.GetDword(CHAT_FONTMODULE, "Font19Col", RGB(170, 170, 170)); g_Settings.UserListColors[CHAT_STATUS_OFFLINE] = M.GetDword(CHAT_FONTMODULE, "Font5Col", RGB(160, 90, 90)); diff --git a/plugins/TabSRMM/src/chat/services.cpp b/plugins/TabSRMM/src/chat/services.cpp index 56a63831f1..e421518e24 100644 --- a/plugins/TabSRMM/src/chat/services.cpp +++ b/plugins/TabSRMM/src/chat/services.cpp @@ -38,23 +38,10 @@ CRITICAL_SECTION cs; -HANDLE hSendEvent; -HANDLE hBuildMenuEvent; +HANDLE hSendEvent, hBuildMenuEvent; HGENMENU hJoinMenuItem, hLeaveMenuItem; -static HANDLE - hServiceRegister = NULL, - hServiceNewChat = NULL, - hServiceAddEvent = NULL, - hServiceGetAddEventPtr = NULL, - hServiceGetInfo = NULL, - hServiceGetCount = NULL, - hEventPrebuildMenu = NULL, - hEventDoubleclicked = NULL, - hEventJoinChat = NULL, - hEventLeaveChat = NULL; - int Chat_ModulesLoaded(WPARAM wParam, LPARAM lParam) { if (!PluginConfig.m_chat_enabled) @@ -122,7 +109,7 @@ INT_PTR Service_GetCount(WPARAM wParam, LPARAM lParam) INT_PTR Service_GetInfo(WPARAM wParam, LPARAM lParam) { GC_INFO * gci = (GC_INFO *) lParam; - SESSION_INFO* si = NULL; + SESSION_INFO *si = NULL; if (!gci || !gci->pszModule) return 1; @@ -212,7 +199,7 @@ INT_PTR Service_NewChat(WPARAM wParam, LPARAM lParam) if ((mi = MM_FindModule(gcw->pszModule)) != NULL) { TCHAR* ptszID = a2tf(gcw->ptszID, gcw->dwFlags); - SESSION_INFO* si = SM_AddSession(ptszID, gcw->pszModule); + SESSION_INFO *si = SM_AddSession(ptszID, gcw->pszModule); // create a new session and set the defaults if (si != NULL) { @@ -281,9 +268,9 @@ INT_PTR Service_NewChat(WPARAM wParam, LPARAM lParam) return GC_NEWSESSION_ERROR; } -static int DoControl(GCEVENT * gce, WPARAM wp) +static int DoControl(GCEVENT *gce, WPARAM wp) { - SESSION_INFO* si; + SESSION_INFO *si; switch(gce->pDest->iType) { case GC_EVENT_CONTROL: @@ -396,12 +383,12 @@ static int DoControl(GCEVENT * gce, WPARAM wp) return 0; } -static void AddUser(GCEVENT * gce) +static void AddUser(GCEVENT *gce) { - SESSION_INFO* si = SM_FindSession(gce->pDest->ptszID, gce->pDest->pszModule); + SESSION_INFO *si = SM_FindSession(gce->pDest->ptszID, gce->pDest->pszModule); if (si) { WORD status = TM_StringToWord(si->pStatuses, gce->ptszStatus); - USERINFO * ui = SM_AddUser(gce->pDest->ptszID, gce->pDest->pszModule, gce->ptszUID, gce->ptszNick, status); + USERINFO *ui = SM_AddUser(gce->pDest->ptszID, gce->pDest->pszModule, gce->ptszUID, gce->ptszNick, status); if (ui) { ui->pszNick = mir_tstrdup(gce->ptszNick); @@ -560,7 +547,7 @@ HWND CreateNewRoom(TContainerData *pContainer, SESSION_INFO *si, BOOL bActivateT return hwndNew; // return handle of the new dialog } -void ShowRoom(SESSION_INFO* si, WPARAM wp, BOOL bSetForeground) +void ShowRoom(SESSION_INFO *si, WPARAM wp, BOOL bSetForeground) { if (!si) return; @@ -726,7 +713,7 @@ INT_PTR Service_AddEvent(WPARAM wParam, LPARAM lParam) pMod = gcd->pszModule; } else if ( gcd->iType == GC_EVENT_NOTICE || gcd->iType == GC_EVENT_INFORMATION ) { - SESSION_INFO* si = GetActiveSession(); + SESSION_INFO *si = GetActiveSession(); if (si && !lstrcmpA(si->pszModule, gcd->pszModule)) { pWnd = si->ptszID; pMod = si->pszModule; @@ -835,34 +822,20 @@ int CreateServiceFunctions(void) } PluginConfig.m_chat_enabled = true; - hServiceRegister = CreateServiceFunction(MS_GC_REGISTER, Service_Register); - hServiceNewChat = CreateServiceFunction(MS_GC_NEWSESSION, Service_NewChat); - hServiceAddEvent = CreateServiceFunction(MS_GC_EVENT, Service_AddEvent); - hServiceGetAddEventPtr = CreateServiceFunction(MS_GC_GETEVENTPTR, Service_GetAddEventPtr); - hServiceGetInfo = CreateServiceFunction(MS_GC_GETINFO, Service_GetInfo); - hServiceGetCount = CreateServiceFunction(MS_GC_GETSESSIONCOUNT, Service_GetCount); - - hEventDoubleclicked = CreateServiceFunction("GChat/DblClickEvent", CList_EventDoubleclicked); - hEventPrebuildMenu = CreateServiceFunction("GChat/PrebuildMenuEvent", CList_PrebuildContactMenuSvc); - hEventJoinChat = CreateServiceFunction("GChat/JoinChat", CList_JoinChat); - hEventLeaveChat = CreateServiceFunction("GChat/LeaveChat", CList_LeaveChat); + CreateServiceFunction(MS_GC_REGISTER, Service_Register); + CreateServiceFunction(MS_GC_NEWSESSION, Service_NewChat); + CreateServiceFunction(MS_GC_EVENT, Service_AddEvent); + CreateServiceFunction(MS_GC_GETEVENTPTR, Service_GetAddEventPtr); + CreateServiceFunction(MS_GC_GETINFO, Service_GetInfo); + CreateServiceFunction(MS_GC_GETSESSIONCOUNT, Service_GetCount); + + CreateServiceFunction("GChat/DblClickEvent", CList_EventDoubleclicked); + CreateServiceFunction("GChat/PrebuildMenuEvent", CList_PrebuildContactMenuSvc); + CreateServiceFunction("GChat/JoinChat", CList_JoinChat); + CreateServiceFunction("GChat/LeaveChat", CList_LeaveChat); return 1; } -void DestroyServiceFunctions(void) -{ - DestroyServiceFunction(hServiceRegister); - DestroyServiceFunction(hServiceNewChat); - DestroyServiceFunction(hServiceAddEvent); - DestroyServiceFunction(hServiceGetAddEventPtr); - DestroyServiceFunction(hServiceGetInfo); - DestroyServiceFunction(hServiceGetCount); - DestroyServiceFunction(hEventDoubleclicked); - DestroyServiceFunction(hEventPrebuildMenu); - DestroyServiceFunction(hEventJoinChat); - DestroyServiceFunction(hEventLeaveChat); -} - void CreateHookableEvents(void) { hSendEvent = CreateHookableEvent(ME_GC_EVENT); diff --git a/plugins/TabSRMM/src/chat/tools.cpp b/plugins/TabSRMM/src/chat/tools.cpp index f18d52b16b..dcb335c157 100644 --- a/plugins/TabSRMM/src/chat/tools.cpp +++ b/plugins/TabSRMM/src/chat/tools.cpp @@ -137,17 +137,17 @@ TCHAR* RemoveFormatting(const TCHAR* pszWord, bool fToLower, bool fStripCR, TCHA static void __stdcall ShowRoomFromPopup(void * pi) { - SESSION_INFO* si = (SESSION_INFO*) pi; + SESSION_INFO *si = (SESSION_INFO*) pi; ShowRoom(si, WINDOW_VISIBLE, TRUE); } -static void TSAPI Chat_OpenPopup(SESSION_INFO* si, HWND hwndPopup) +static void TSAPI Chat_OpenPopup(SESSION_INFO *si, HWND hwndPopup) { CallFunctionAsync(ShowRoomFromPopup, si); PUDeletePopup(hwndPopup); } -static void TSAPI Chat_DismissPopup(const SESSION_INFO* si, HWND hwndPopup) +static void TSAPI Chat_DismissPopup(const SESSION_INFO *si, HWND hwndPopup) { if (si->hContact) if (CallService(MS_CLIST_GETEVENT, (WPARAM)si->hContact, 0)) @@ -161,7 +161,7 @@ static void TSAPI Chat_DismissPopup(const SESSION_INFO* si, HWND hwndPopup) static INT_PTR CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { - SESSION_INFO* si = (SESSION_INFO*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, 0);; + SESSION_INFO *si = (SESSION_INFO*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd, 0);; switch (message) { case WM_COMMAND: @@ -188,7 +188,7 @@ static INT_PTR CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPA return DefWindowProc(hWnd, message, wParam, lParam); } -static int ShowPopup(HANDLE hContact, SESSION_INFO* si, HICON hIcon, char* pszProtoName, TCHAR* pszRoomName, COLORREF crBkg, const TCHAR* fmt, ...) +static int ShowPopup(HANDLE hContact, SESSION_INFO *si, HICON hIcon, char* pszProtoName, TCHAR* pszRoomName, COLORREF crBkg, const TCHAR* fmt, ...) { POPUPDATAT pd = {0}; va_list marker; @@ -229,7 +229,7 @@ static int ShowPopup(HANDLE hContact, SESSION_INFO* si, HICON hIcon, char* pszP return PUAddPopupT(&pd); } -static BOOL DoTrayIcon(SESSION_INFO* si, GCEVENT * gce) +static BOOL DoTrayIcon(SESSION_INFO *si, GCEVENT *gce) { int iEvent = gce->pDest->iType; @@ -293,7 +293,7 @@ static BOOL DoTrayIcon(SESSION_INFO* si, GCEVENT * gce) return TRUE; } -static BOOL DoPopup(SESSION_INFO* si, GCEVENT* gce, struct TWindowData* dat) +static BOOL DoPopup(SESSION_INFO *si, GCEVENT* gce, struct TWindowData* dat) { int iEvent = gce->pDest->iType; TContainerData *pContainer = dat ? dat->pContainer : NULL; @@ -512,7 +512,7 @@ void TSAPI DoFlashAndSoundWorker(FLASH_PARAMS* p) free(p); } -BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO* si, GCEVENT * gce, BOOL bHighlight, int bManyFix) +BOOL DoSoundsFlashPopupTrayStuff(SESSION_INFO *si, GCEVENT *gce, BOOL bHighlight, int bManyFix) { FLASH_PARAMS* params; struct TWindowData *dat = 0; @@ -739,7 +739,7 @@ TCHAR* my_strstri(const TCHAR* s1, const TCHAR* s2) * log the event to the log file * allows selective logging of wanted events */ -BOOL LogToFile(SESSION_INFO* si, GCEVENT * gce) +BOOL LogToFile(SESSION_INFO *si, GCEVENT *gce) { TCHAR szBuffer[4096]; TCHAR szLine[4096]; @@ -920,7 +920,7 @@ BOOL LogToFile(SESSION_INFO* si, GCEVENT * gce) return FALSE; } -UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO* si, TCHAR* pszUID, TCHAR* pszWordText) +UINT CreateGCMenu(HWND hwndDlg, HMENU *hMenu, int iIndex, POINT pt, SESSION_INFO *si, TCHAR* pszUID, TCHAR* pszWordText) { GCMENUITEMS gcmi = {0}; int i; @@ -1040,7 +1040,7 @@ void DestroyGCMenu(HMENU *hMenu, int iIndex) BOOL DoEventHookAsync(HWND hwnd, const TCHAR* pszID, const char* pszModule, int iType, TCHAR* pszUID, TCHAR* pszText, DWORD dwItem) { - SESSION_INFO* si; + SESSION_INFO *si; GCHOOK* gch = (GCHOOK*)mir_alloc(sizeof(GCHOOK)); GCDEST* gcd = (GCDEST*)mir_alloc(sizeof(GCDEST)); @@ -1070,7 +1070,7 @@ BOOL DoEventHookAsync(HWND hwnd, const TCHAR* pszID, const char* pszModule, int BOOL DoEventHook(const TCHAR* pszID, const char* pszModule, int iType, const TCHAR* pszUID, const TCHAR* pszText, DWORD dwItem) { - SESSION_INFO* si; + SESSION_INFO *si; GCHOOK gch = {0}; GCDEST gcd = {0}; diff --git a/plugins/TabSRMM/src/chat/window.cpp b/plugins/TabSRMM/src/chat/window.cpp index 9da631a99f..32e796d74e 100644 --- a/plugins/TabSRMM/src/chat/window.cpp +++ b/plugins/TabSRMM/src/chat/window.cpp @@ -349,7 +349,7 @@ static void Chat_UpdateWindowState(TWindowData *dat, UINT msg) * initialize button bar, set all the icons and ensure proper button state */ -static void InitButtons(HWND hwndDlg, SESSION_INFO* si) +static void InitButtons(HWND hwndDlg, SESSION_INFO *si) { BOOL isFlat = M.GetByte("tbflat", 1); BOOL isThemed = PluginConfig.m_bIsXP; @@ -403,7 +403,7 @@ static void Chat_ResizeIeView(const TWindowData *dat) static int RoomWndResize(HWND hwndDlg, LPARAM lParam, UTILRESIZECONTROL *urc) { RECT rc, rcTabs; - SESSION_INFO* si = (SESSION_INFO*)lParam; + SESSION_INFO *si = (SESSION_INFO*)lParam; struct TWindowData *dat = (struct TWindowData *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); int TabHeight; BOOL bToolbar = !(dat->pContainer->dwFlags & CNT_HIDETOOLBAR); @@ -1676,7 +1676,7 @@ static LRESULT CALLBACK NicklistSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, TVHITTESTINFO hti; int item; int height; - USERINFO * ui; + USERINFO *ui; struct TWindowData *dat = (struct TWindowData *)GetWindowLongPtr(hwndParent, GWLP_USERDATA); SESSION_INFO *parentdat = (SESSION_INFO *)dat->si; @@ -1881,7 +1881,7 @@ int GetTextPixelSize(TCHAR* pszText, HFONT hFont, bool bWidth) static void __cdecl phase2(void * lParam) { - SESSION_INFO* si = (SESSION_INFO*) lParam; + SESSION_INFO *si = (SESSION_INFO*) lParam; Sleep(30); if (si && si->hWnd) PostMessage(si->hWnd, GC_REDRAWLOG3, 0, 0); @@ -2338,7 +2338,7 @@ INT_PTR CALLBACK RoomWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar int offset, x_offset = 0; int height; int index = dis->itemID; - USERINFO * ui = UM_FindUserFromIndex(si->pUsers, index); + USERINFO *ui = UM_FindUserFromIndex(si->pUsers, index); char szIndicator = 0; if (ui) { @@ -3066,7 +3066,7 @@ LABEL_SHOWWINDOW: if (HIWORD(wParam) == LBN_DBLCLK) { TVHITTESTINFO hti; int item; - USERINFO * ui; + USERINFO *ui; hti.pt.x = (short)LOWORD(GetMessagePos()); hti.pt.y = (short)HIWORD(GetMessagePos()); diff --git a/plugins/TabSRMM/src/commonheaders.h b/plugins/TabSRMM/src/commonheaders.h index 46b1d5b50f..2d55f0c8d5 100644 --- a/plugins/TabSRMM/src/commonheaders.h +++ b/plugins/TabSRMM/src/commonheaders.h @@ -240,7 +240,6 @@ extern HINSTANCE g_hInst; extern CSkinItem SkinItems[]; extern TContainerData *pFirstContainer, *pLastActiveContainer; extern HANDLE hTypingNotify; -extern SESSION_INFO *m_WndList; extern ButtonSet g_ButtonSet; extern HANDLE g_hEvent; extern RECT rcLastStatusBarClick; diff --git a/plugins/TabSRMM/src/container.cpp b/plugins/TabSRMM/src/container.cpp index 907bc53c3e..b40276d6fa 100644 --- a/plugins/TabSRMM/src/container.cpp +++ b/plugins/TabSRMM/src/container.cpp @@ -1910,14 +1910,7 @@ panel_found: RemoveContainerFromList(pContainer); if (PluginConfig.m_MathModAvail) CallService(MTH_HIDE, 0, 0); - { - SESSION_INFO *node = m_WndList; - while (node) { - if (node->pContainer == pContainer) - node->pContainer = 0; - node = node->next; - } - } + SM_RemoveContainer(pContainer); if (pContainer->cachedDC) { SelectObject(pContainer->cachedDC, pContainer->oldHBM); DeleteObject(pContainer->cachedHBM); diff --git a/plugins/TabSRMM/src/msgdlgutils.cpp b/plugins/TabSRMM/src/msgdlgutils.cpp index ebd59596fe..bab958ae85 100644 --- a/plugins/TabSRMM/src/msgdlgutils.cpp +++ b/plugins/TabSRMM/src/msgdlgutils.cpp @@ -2320,7 +2320,7 @@ void TSAPI ClearLog(TWindowData *dat) dat->hDbEventFirst = NULL; } else if (dat && dat->bType == SESSIONTYPE_CHAT && dat->si) { - SESSION_INFO* si = reinterpret_cast(dat->si); + SESSION_INFO *si = reinterpret_cast(dat->si); SESSION_INFO* s = SM_FindSession(si->ptszID, si->pszModule); if (s) { SetDlgItemText(dat->hwnd, IDC_CHAT_LOG, _T("")); diff --git a/plugins/TabSRMM/src/msgs.h b/plugins/TabSRMM/src/msgs.h index 857ea34629..7eb3d283b5 100644 --- a/plugins/TabSRMM/src/msgs.h +++ b/plugins/TabSRMM/src/msgs.h @@ -263,7 +263,7 @@ struct TWindowData UINT bbRSideWidth; //MAD BYTE kstate[256]; - SESSION_INFO* si; + SESSION_INFO *si; RECT rcNick, rcUIN, rcStatus, rcPic; HANDLE hDbEventFirst, hDbEventLast; -- cgit v1.2.3