From 11fbe8d4d458c856dcbf7e6d18561b467ef368d3 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 27 Jan 2023 20:46:02 +0300 Subject: IRC: contact converter --- protocols/IRCG/src/ircproto.cpp | 1 + protocols/IRCG/src/ircproto.h | 1 + protocols/IRCG/src/tools.cpp | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) (limited to 'protocols/IRCG/src') diff --git a/protocols/IRCG/src/ircproto.cpp b/protocols/IRCG/src/ircproto.cpp index 77ac527e30..5c7d9fb3ef 100644 --- a/protocols/IRCG/src/ircproto.cpp +++ b/protocols/IRCG/src/ircproto.cpp @@ -62,6 +62,7 @@ CIrcProto::CIrcProto(const char* szModuleName, const wchar_t* tszUserName) : codepage = CP_ACP; InitPrefs(); + CheckUpdate(); CList_SetAllOffline(true); diff --git a/protocols/IRCG/src/ircproto.h b/protocols/IRCG/src/ircproto.h index 0e2ee41f68..ee40589a8a 100644 --- a/protocols/IRCG/src/ircproto.h +++ b/protocols/IRCG/src/ircproto.h @@ -264,6 +264,7 @@ struct CIrcProto : public PROTO // tools.cpp void AddToJTemp(wchar_t op, CMStringW& sCommand); bool AddWindowItemData(CMStringW window, const wchar_t *pszLimit, const wchar_t *pszMode, const wchar_t *pszPassword, const wchar_t *pszTopic); + void CheckUpdate(); INT_PTR DoEvent(int iEvent, const wchar_t *pszWindow, const wchar_t *pszNick, const wchar_t *pszText, const wchar_t *pszStatus, const wchar_t *pszUserInfo, DWORD_PTR dwItemData, bool bAddToLog, bool bIsMe, time_t timestamp = 1); void FindLocalIP(HNETLIBCONN con); bool FreeWindowItemData(CMStringW window, CHANNELINFO* wis); diff --git a/protocols/IRCG/src/tools.cpp b/protocols/IRCG/src/tools.cpp index dd0f6d158d..4748f34534 100644 --- a/protocols/IRCG/src/tools.cpp +++ b/protocols/IRCG/src/tools.cpp @@ -21,6 +21,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #include "stdafx.h" +void CIrcProto::CheckUpdate() +{ + if (getByte("Compatibility") < 1) { + for (auto &cc : AccContacts()) { + if (getByte(cc, "ChatRoom") == GCW_SERVER) + db_delete_contact(cc); + else { + ptrA szNick(getUStringA(cc, "Nick")); + if (szNick) + setUString(cc, "ID", szNick); + } + } + + setByte("Compatibility", 1); + } +} + CHANNELINFO *CIrcProto::GetChannelInfo(const wchar_t *pwszChatName) { return (CHANNELINFO *)Chat_GetUserInfo(Chat_Find(pwszChatName, m_szModuleName)); -- cgit v1.2.3