summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM/src/utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/ICQ-WIM/src/utils.cpp')
-rw-r--r--protocols/ICQ-WIM/src/utils.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/protocols/ICQ-WIM/src/utils.cpp b/protocols/ICQ-WIM/src/utils.cpp
index e0c39c27a6..6af29df66d 100644
--- a/protocols/ICQ-WIM/src/utils.cpp
+++ b/protocols/ICQ-WIM/src/utils.cpp
@@ -94,7 +94,7 @@ MCONTACT CIcqProto::CreateContact(const CMStringW &wszId, bool bTemporary)
{
auto *pUser = FindUser(wszId);
if (pUser != nullptr)
- return pUser->m_hContact;
+ return GetRealContact(pUser);
MCONTACT hContact = db_add_contact();
setWString(hContact, DB_KEY_ID, wszId);
@@ -149,6 +149,11 @@ void CIcqProto::Json2string(MCONTACT hContact, const JSONNode &node, const char
/////////////////////////////////////////////////////////////////////////////////////////
+MCONTACT CIcqProto::GetRealContact(IcqUser *pUser)
+{
+ return (pUser->m_hContact == 0) ? m_hFavContact : pUser->m_hContact;
+}
+
CMStringW CIcqProto::GetUserId(MCONTACT hContact)
{
return getMStringW(hContact, DB_KEY_ID);