summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/m_chat.h1
-rw-r--r--libs/win32/mir_app.libbin291510 -> 291820 bytes
-rw-r--r--libs/win64/mir_app.libbin291260 -> 291580 bytes
-rw-r--r--plugins/Msg_Export/src/utils.cpp6
-rw-r--r--src/mir_app/src/chat_manager.cpp9
-rw-r--r--src/mir_app/src/mir_app.def1
-rw-r--r--src/mir_app/src/mir_app64.def1
7 files changed, 14 insertions, 4 deletions
diff --git a/include/m_chat.h b/include/m_chat.h
index e747388245..ea716ea040 100644
--- a/include/m_chat.h
+++ b/include/m_chat.h
@@ -466,6 +466,7 @@ MIR_APP_DLL(int) Chat_GetInfo(GC_INFO *pInfo);
// Finds a session by its module & unique id
// returns a pointer to session or NULL on error
+MIR_APP_DLL(SESSION_INFO*) Chat_Find(MCONTACT hContact, const char *pszModule = nullptr);
MIR_APP_DLL(SESSION_INFO*) Chat_Find(const wchar_t *pszID, const char *pszModule);
//------------------------- HOOKS ------------------------
diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib
index 8fef540280..7812501077 100644
--- a/libs/win32/mir_app.lib
+++ b/libs/win32/mir_app.lib
Binary files differ
diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib
index 31676ae0b1..a3f4b42cf6 100644
--- a/libs/win64/mir_app.lib
+++ b/libs/win64/mir_app.lib
Binary files differ
diff --git a/plugins/Msg_Export/src/utils.cpp b/plugins/Msg_Export/src/utils.cpp
index 1c819d20de..c30c32a62b 100644
--- a/plugins/Msg_Export/src/utils.cpp
+++ b/plugins/Msg_Export/src/utils.cpp
@@ -642,12 +642,10 @@ static bool ExportDBEventInfo(MCONTACT hContact, HANDLE hFile, const wstring &sF
else {
sLocalUser = ptrW(GetMyOwnNick(hContact));
sRemoteUser = Clist_GetContactDisplayName(hContact);
- if (dbei.szUserId && Contact::IsGroupChat(hContact)) {
- ptrW contactId(Contact::GetInfo(CNF_UNIQUEID, hContact, szProto));
- if (auto *si = Chat_Find(contactId, szProto))
+ if (dbei.szUserId && Contact::IsGroupChat(hContact))
+ if (auto *si = Chat_Find(hContact, szProto))
if (auto *pUser = g_chatApi.UM_FindUser(si, Utf2T(dbei.szUserId)))
sRemoteUser = pUser->pszNick;
- }
nFirstColumnWidth = max(sRemoteUser.size(), clFileTo1ColWidth[sFilePath]);
nFirstColumnWidth = max(sLocalUser.size(), nFirstColumnWidth);
diff --git a/src/mir_app/src/chat_manager.cpp b/src/mir_app/src/chat_manager.cpp
index 495e55c510..35674c113a 100644
--- a/src/mir_app/src/chat_manager.cpp
+++ b/src/mir_app/src/chat_manager.cpp
@@ -140,6 +140,15 @@ void SM_FreeSession(SESSION_INFO *si)
delete si;
}
+MIR_APP_DLL(SESSION_INFO*) Chat_Find(MCONTACT hContact, const char *pszModule)
+{
+ if (pszModule == nullptr)
+ pszModule = Proto_GetBaseAccountName(hContact);
+
+ ptrW contactId(Contact::GetInfo(CNF_UNIQUEID, hContact, pszModule));
+ return Chat_Find(contactId, pszModule);
+}
+
MIR_APP_DLL(SESSION_INFO*) Chat_Find(const wchar_t *pszID, const char *pszModule)
{
if (!pszID || !pszModule)
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def
index 8244257bb2..7600b61835 100644
--- a/src/mir_app/src/mir_app.def
+++ b/src/mir_app/src/mir_app.def
@@ -964,3 +964,4 @@ _Netlib_DownloadFile@20 @1099 NONAME
??0FILE_BLOB@DB@@QAE@PAXPBD1_N@Z @1100 NONAME
?getUserInfo@FILE_BLOB@DB@@QBEPAXXZ @1101 NONAME
?setUserInfo@FILE_BLOB@DB@@QAEXPAX@Z @1102 NONAME
+?Chat_Find@@YGPAUSESSION_INFO@@IPBD@Z @1103 NONAME
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def
index f87aca41a0..78a03b754f 100644
--- a/src/mir_app/src/mir_app64.def
+++ b/src/mir_app/src/mir_app64.def
@@ -964,3 +964,4 @@ Netlib_DownloadFile @1093 NONAME
??0FILE_BLOB@DB@@QEAA@PEAXPEBD1_N@Z @1094 NONAME
?getUserInfo@FILE_BLOB@DB@@QEBAPEAXXZ @1095 NONAME
?setUserInfo@FILE_BLOB@DB@@QEAAXPEAX@Z @1096 NONAME
+?Chat_Find@@YAPEAUSESSION_INFO@@IPEBD@Z @1097 NONAME