From c104cf6c15af38f5b9b6946f08d90e5eef579507 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 30 May 2024 14:05:40 +0300 Subject: =?UTF-8?q?fixes=20#4279=20(Msg=5FExport:=20=D0=BD=D0=B5=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=20=D1=8D=D0=BA?= =?UTF-8?q?=D1=81=D0=BF=D0=BE=D1=80=D1=82=D0=B8=D1=80=D1=83=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=87=D0=B0=D1=82=D0=BE=D0=B2=20Telegram)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/mir_app/src/chat_manager.cpp | 45 ++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 25 deletions(-) (limited to 'src') diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp index 9e713ab7fc..11be2dc8ae 100644 --- a/src/mir_app/src/chat_manager.cpp +++ b/src/mir_app/src/chat_manager.cpp @@ -26,8 +26,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define WINDOWS_COMMANDS_MAX 30 -static USERINFO* UM_FindUser(SESSION_INFO *si, const wchar_t *pszUID); - static int CompareUser(const USERINFO *u1, const USERINFO *u2) { return mir_wstrcmp(u1->pszUID, u2->pszUID); @@ -163,7 +161,19 @@ MIR_APP_DLL(SESSION_INFO*) Chat_Find(const wchar_t *pszID, const char *pszModule } ///////////////////////////////////////////////////////////////////////////////////////// -// Chat user manager +// User manager functions +// Necessary to keep track of the users in a window nicklist + +static USERINFO* UM_FindUser(SESSION_INFO *si, const wchar_t *pszUID) +{ + if (!si || !pszUID) + return nullptr; + + mir_cslock lck(si->csLock); + USERINFO tmp; + tmp.pszUID = (wchar_t *)pszUID; + return si->getUserList().find(&tmp); +} USERINFO* UM_AddUser(SESSION_INFO *si, const wchar_t *pszUID, const wchar_t *pszNick, uint16_t wStatus) { @@ -227,12 +237,12 @@ static USERINFO* UM_SetStatus(SESSION_INFO *si, const wchar_t *pszUID, uint16_t static USERINFO* UM_SetContactStatus(SESSION_INFO *si, const wchar_t *pszUID, uint16_t status) { - USERINFO *ui = UM_FindUser(si, pszUID); - if (ui == nullptr) - return nullptr; + if (auto *ui = UM_FindUser(si, pszUID)) { + ui->ContactStatus = status; + return ui; + } - ui->ContactStatus = status; - return ui; + return nullptr; } BOOL UM_SetStatusEx(SESSION_INFO *si, const wchar_t *pszText, int flags) @@ -267,7 +277,7 @@ BOOL UM_SetStatusEx(SESSION_INFO *si, const wchar_t *pszText, int flags) return TRUE; } -static USERINFO *UM_TakeStatus(SESSION_INFO *si, const wchar_t *pszUID, uint16_t status) +static USERINFO* UM_TakeStatus(SESSION_INFO *si, const wchar_t *pszUID, uint16_t status) { USERINFO *ui = UM_FindUser(si, pszUID); if (ui == nullptr) @@ -277,7 +287,7 @@ static USERINFO *UM_TakeStatus(SESSION_INFO *si, const wchar_t *pszUID, uint16_t return ui; } -static wchar_t *UM_FindUserAutoComplete(SESSION_INFO *si, const wchar_t *pszOriginal, const wchar_t *pszCurrent) +static wchar_t* UM_FindUserAutoComplete(SESSION_INFO *si, const wchar_t *pszOriginal, const wchar_t *pszCurrent) { if (!si || !pszOriginal || !pszCurrent) return nullptr; @@ -707,21 +717,6 @@ static BOOL TM_RemoveAll(STATUSINFO **ppStatusList) return TRUE; } -///////////////////////////////////////////////////////////////////////////////////////// -// User manager functions -// Necessary to keep track of the users in a window nicklist - -static USERINFO* UM_FindUser(SESSION_INFO *si, const wchar_t *pszUID) -{ - if (!si || !pszUID) - return nullptr; - - mir_cslock lck(si->csLock); - USERINFO tmp; - tmp.pszUID = (wchar_t*)pszUID; - return si->getUserList().find(&tmp); -} - ///////////////////////////////////////////////////////////////////////////////////////// static int compareKeysStub(const void *p1, const void *p2) -- cgit v1.2.3