From 40dc4c27f7d2ea66ff570281a992415a0e6578a2 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Wed, 21 Feb 2018 18:36:58 +0300 Subject: IRC: C++'11 iterators --- protocols/IRCG/src/commandmonitor.cpp | 13 +++---- protocols/IRCG/src/irclib.cpp | 70 +++++++++++++++-------------------- protocols/IRCG/src/ircproto.cpp | 11 +++--- protocols/IRCG/src/options.cpp | 36 ++++++++---------- protocols/IRCG/src/output.cpp | 38 +++++++------------ protocols/IRCG/src/services.cpp | 6 +-- protocols/IRCG/src/windows.cpp | 6 +-- 7 files changed, 75 insertions(+), 105 deletions(-) (limited to 'protocols/IRCG/src') diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp index 005d9cd96f..72db70fc6f 100644 --- a/protocols/IRCG/src/commandmonitor.cpp +++ b/protocols/IRCG/src/commandmonitor.cpp @@ -2129,8 +2129,8 @@ bool CIrcProto::OnIrc_USERHOST_REPLY(const CIrcMessage *pmsg) // Status-check post-processing: make buddies in ckeck-list offline if (command[0] == 'S') { - for (int i = 0; i < checklist.getCount(); i++) { - finduser.name = checklist[i].GetBuffer(); + for (auto &it : checklist) { + finduser.name = it->GetBuffer(); finduser.ExactNick = true; CList_SetOffline(&finduser); } @@ -2202,10 +2202,9 @@ bool CIrcProto::OnIrc_SUPPORT(const CIrcMessage *pmsg) if (pmsg->m_bIncoming && !bPerformDone) DoOnConnect(pmsg); - if (pmsg->m_bIncoming && pmsg->parameters.getCount() > 0) { - CMStringW S; - for (int i = 0; i < pmsg->parameters.getCount(); i++) { - wchar_t* temp = mir_wstrdup(pmsg->parameters[i]); + if (pmsg->m_bIncoming) { + for (auto &it : pmsg->parameters) { + wchar_t* temp = mir_wstrdup(it->GetString()); if (wcsstr(temp, L"CHANTYPES=")) { wchar_t* p1 = wcschr(temp, '='); p1++; @@ -2408,7 +2407,7 @@ int CIrcProto::IsIgnored(const CMStringW& nick, const CMStringW& address, const int CIrcProto::IsIgnored(CMStringW user, char type) { for (int i = 0; i < m_ignoreItems.getCount(); i++) { - const CIrcIgnoreItem& C = m_ignoreItems[i]; + const CIrcIgnoreItem &C = m_ignoreItems[i]; if (type == 0 && !mir_wstrcmpi(user, C.mask)) return i + 1; diff --git a/protocols/IRCG/src/irclib.cpp b/protocols/IRCG/src/irclib.cpp index 38e6944131..681e1b19ba 100644 --- a/protocols/IRCG/src/irclib.cpp +++ b/protocols/IRCG/src/irclib.cpp @@ -58,8 +58,8 @@ CIrcMessage::CIrcMessage(const CIrcMessage& m) : prefix.sUser = m.prefix.sUser; prefix.sHost = m.prefix.sHost; - for (int i = 0; i < m.parameters.getCount(); i++) - parameters.insert(new CMStringW(m.parameters[i])); + for (auto &it : m.parameters) + parameters.insert(new CMStringW(*it)); } CIrcMessage::~CIrcMessage() @@ -468,9 +468,9 @@ void CIrcProto::RemoveDCCSession(MCONTACT hContact) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_chats.getCount(); i++) - if (m_dcc_chats[i]->di->hContact == hContact) { - m_dcc_chats.remove(i); + for (auto &it : m_dcc_chats) + if (it->di->hContact == hContact) { + m_dcc_chats.remove(it); break; } } @@ -479,9 +479,9 @@ void CIrcProto::RemoveDCCSession(DCCINFO *pdci) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) { - if (m_dcc_xfers[i]->di == pdci) { - m_dcc_xfers.remove(i); + for (auto &it : m_dcc_xfers) { + if (it->di == pdci) { + m_dcc_xfers.remove(it); break; } } @@ -491,9 +491,9 @@ CDccSession* CIrcProto::FindDCCSession(MCONTACT hContact) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_chats.getCount(); i++) - if (m_dcc_chats[i]->di->hContact == hContact) - return m_dcc_chats[i]; + for (auto &it : m_dcc_chats) + if (it->di->hContact == hContact) + return it; return nullptr; } @@ -502,9 +502,9 @@ CDccSession* CIrcProto::FindDCCSession(DCCINFO *pdci) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) - if (m_dcc_xfers[i]->di == pdci) - return m_dcc_xfers[i]; + for (auto &it : m_dcc_xfers) + if (it->di == pdci) + return it; return nullptr; } @@ -513,11 +513,9 @@ CDccSession* CIrcProto::FindDCCSendByPort(int iPort) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) { - CDccSession *p = m_dcc_xfers[i]; + for (auto &p : m_dcc_xfers) if (p->di->iType == DCC_SEND && p->di->bSender && iPort == p->di->iPort) return p; - } return nullptr; } @@ -526,8 +524,7 @@ CDccSession* CIrcProto::FindDCCRecvByPortAndName(int iPort, const wchar_t* szNam { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) { - CDccSession* p = m_dcc_xfers[i]; + for (auto &p : m_dcc_xfers) { DBVARIANT dbv; if (!getWString(p->di->hContact, "Nick", &dbv)) { if (p->di->iType == DCC_SEND && !p->di->bSender && !mir_wstrcmpi(szName, dbv.ptszVal) && iPort == p->di->iPort) { @@ -545,9 +542,9 @@ CDccSession* CIrcProto::FindPassiveDCCSend(int iToken) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) - if (m_dcc_xfers[i]->iToken == iToken) - return m_dcc_xfers[i]; + for (auto &it : m_dcc_xfers) + if (it->iToken == iToken) + return it; return nullptr; } @@ -556,39 +553,33 @@ CDccSession* CIrcProto::FindPassiveDCCRecv(CMStringW sName, CMStringW sToken) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_xfers.getCount(); i++) { - CDccSession *p = m_dcc_xfers[i]; + for (auto &p : m_dcc_xfers) if (sToken == p->di->sToken && sName == p->di->sContactName) return p; - } return nullptr; } void CIrcProto::DisconnectAllDCCSessions(bool Shutdown) { - mir_cslock lck(m_dcc); - - for (int i = 0; i < m_dcc_chats.getCount(); i++) - if (m_disconnectDCCChats || Shutdown) - m_dcc_chats[i]->Disconnect(); + if (m_disconnectDCCChats || Shutdown) { + mir_cslock lck(m_dcc); + for (auto &it : m_dcc_chats) + it->Disconnect(); + } } void CIrcProto::CheckDCCTimeout(void) { mir_cslock lck(m_dcc); - for (int i = 0; i < m_dcc_chats.getCount(); i++) { - CDccSession* p = m_dcc_chats[i]; + for (auto &p : m_dcc_chats) if (time(nullptr) > p->tLastActivity + DCCCHATTIMEOUT) p->Disconnect(); - } - for (int j = 0; j < m_dcc_xfers.getCount(); j++) { - CDccSession* p = m_dcc_xfers[j]; + for (auto &p : m_dcc_xfers) if (time(nullptr) > p->tLastActivity + DCCSENDTIMEOUT) p->Disconnect(); - } } //////////////////////////////////////////////////////////////////// @@ -1421,13 +1412,12 @@ LBL_Parse: if (iParamCnt != 2) cbLen = mir_snprintf(buf, "%s : ERROR : UNKNOWN-ERROR\r\n", szBuf); else { - for (int i = 0; i < g_Instances.getCount(); i++) { - if (PeerPortNrRcvd == g_Instances[i]->m_info.iPort && LocalPortNrRcvd == g_Instances[i]->m_myLocalPort) { + for (auto &it : g_Instances) + if (PeerPortNrRcvd == it->m_info.iPort && LocalPortNrRcvd == it->m_myLocalPort) { cbLen = mir_snprintf(buf, "%s : USERID : %S : %S\r\n", - szBuf, g_Instances[i]->m_info.sIdentServerType.c_str(), g_Instances[i]->m_info.sUserID.c_str()); + szBuf, it->m_info.sIdentServerType.c_str(), it->m_info.sUserID.c_str()); break; } - } if (cbLen == 0) cbLen = mir_snprintf(buf, "%s : ERROR : INVALID-PORT\r\n", szBuf); diff --git a/protocols/IRCG/src/ircproto.cpp b/protocols/IRCG/src/ircproto.cpp index 69b19da59b..323e1dd587 100644 --- a/protocols/IRCG/src/ircproto.cpp +++ b/protocols/IRCG/src/ircproto.cpp @@ -242,13 +242,12 @@ int CIrcProto::OnModulesLoaded(WPARAM, LPARAM) OBJLIST performToConvert(10); db_enum_settings(NULL, sttCheckPerform, m_szModuleName, &performToConvert); - for (int i = 0; i < performToConvert.getCount(); i++) { - CMStringA s = performToConvert[i]; + for (auto &it : performToConvert) { DBVARIANT dbv; - if (!getWString(s, &dbv)) { - db_unset(NULL, m_szModuleName, s); - s.MakeUpper(); - setWString(s, dbv.ptszVal); + if (!getWString(*it, &dbv)) { + db_unset(NULL, m_szModuleName, *it); + it->MakeUpper(); + setWString(*it, dbv.ptszVal); db_free(&dbv); } } diff --git a/protocols/IRCG/src/options.cpp b/protocols/IRCG/src/options.cpp index 3378b84e5f..137bd722cc 100644 --- a/protocols/IRCG/src/options.cpp +++ b/protocols/IRCG/src/options.cpp @@ -485,10 +485,8 @@ void CConnectPrefsDlg::OnInitDialog() m_proto->m_hwndConnect = m_hwnd; // Fill the servers combo box and create SERVER_INFO structures - for (int i = 0; i < g_servers.getCount(); i++) { - SERVER_INFO &si = g_servers[i]; - m_serverCombo.AddStringA(si.m_name, LPARAM(&si)); - } + for (auto &si : g_servers) + m_serverCombo.AddStringA(si->m_name, LPARAM(si)); m_serverCombo.SetCurSel(m_proto->m_serverComboSelection); m_server.SetTextA(m_proto->m_serverName); @@ -1022,17 +1020,15 @@ void COtherPrefsDlg::OnInitDialog() break; } } - - + if (m_proto->m_codepage == CP_UTF8) m_autodetect.Disable(); - for (int i = 0; i < g_servers.getCount(); i++) { - SERVER_INFO& si = g_servers[i]; - int idx = m_performCombo.FindStringA(si.m_group, -1, true); + for (auto &si : g_servers) { + int idx = m_performCombo.FindStringA(si->m_group, -1, true); if (idx == CB_ERR) { - idx = m_performCombo.AddStringA(si.m_group); - addPerformComboValue(idx, si.m_group); + idx = m_performCombo.AddStringA(si->m_group); + addPerformComboValue(idx, si->m_group); } } @@ -1588,9 +1584,8 @@ void CIgnorePrefsDlg::RebuildList() { m_list.DeleteAllItems(); - for (int i = 0; i < m_proto->m_ignoreItems.getCount(); i++) { - CIrcIgnoreItem& C = m_proto->m_ignoreItems[i]; - if (C.mask.IsEmpty() || C.flags[0] != '+') + for (auto &C : m_proto->m_ignoreItems) { + if (C->mask.IsEmpty() || C->flags[0] != '+') continue; LVITEM lvItem; @@ -1598,17 +1593,17 @@ void CIgnorePrefsDlg::RebuildList() lvItem.mask = LVIF_TEXT | LVIF_PARAM; lvItem.iSubItem = 0; lvItem.lParam = lvItem.iItem; - lvItem.pszText = (wchar_t*)C.mask.c_str(); + lvItem.pszText = (wchar_t*)C->mask.c_str(); lvItem.iItem = m_list.InsertItem(&lvItem); lvItem.mask = LVIF_TEXT; lvItem.iSubItem = 1; - lvItem.pszText = (wchar_t*)C.flags.c_str(); + lvItem.pszText = (wchar_t*)C->flags.c_str(); m_list.SetItem(&lvItem); lvItem.mask = LVIF_TEXT; lvItem.iSubItem = 2; - lvItem.pszText = (wchar_t*)C.network.c_str(); + lvItem.pszText = (wchar_t*)C->network.c_str(); m_list.SetItem(&lvItem); } @@ -1754,10 +1749,9 @@ struct CDlgAccMgrUI : public CProtoDlgBase virtual void OnInitDialog() { - for (int i = 0; i < g_servers.getCount(); i++) { - SERVER_INFO& si = g_servers[i]; - m_serverCombo.AddStringA(si.m_name, LPARAM(&si)); - } + for (auto &si : g_servers) + m_serverCombo.AddStringA(si->m_name, LPARAM(si)); + m_serverCombo.SetCurSel(m_proto->m_serverComboSelection); m_server.SetTextA(m_proto->m_serverName); m_port.SetTextA(m_proto->m_portStart); diff --git a/protocols/IRCG/src/output.cpp b/protocols/IRCG/src/output.cpp index 49958b1fd9..fe0c8b97f4 100644 --- a/protocols/IRCG/src/output.cpp +++ b/protocols/IRCG/src/output.cpp @@ -27,10 +27,8 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) if (pmsg->m_bIncoming) { // Is it an incoming message? if (pmsg->sCommand == L"WALLOPS" && pmsg->parameters.getCount() > 0) { - wchar_t temp[200]; *temp = 0; - mir_snwprintf(temp, TranslateT("WallOps from %s: "), pmsg->prefix.sNick.c_str()); - sMessage = temp; - for (int i = 0; i < (int)pmsg->parameters.getCount(); i++) { + sMessage.Format(TranslateT("WallOps from %s: "), pmsg->prefix.sNick.c_str()); + for (int i = 0; i < pmsg->parameters.getCount(); i++) { sMessage += pmsg->parameters[i]; if (i != pmsg->parameters.getCount() - 1) sMessage += L" "; @@ -39,10 +37,8 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) } if (pmsg->sCommand == L"INVITE" && pmsg->parameters.getCount() > 1) { - wchar_t temp[256]; *temp = 0; - mir_snwprintf(temp, TranslateT("%s invites you to %s"), pmsg->prefix.sNick.c_str(), pmsg->parameters[1].c_str()); - sMessage = temp; - for (int i = 2; i < (int)pmsg->parameters.getCount(); i++) { + sMessage.Format(TranslateT("%s invites you to %s"), pmsg->prefix.sNick.c_str(), pmsg->parameters[1].c_str()); + for (int i = 2; i < pmsg->parameters.getCount(); i++) { sMessage += L": " + pmsg->parameters[i]; if (i != pmsg->parameters.getCount() - 1) sMessage += L" "; @@ -52,10 +48,8 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) int index = _wtoi(pmsg->sCommand.c_str()); if (index == 301 && pmsg->parameters.getCount() > 0) { - wchar_t temp[500]; *temp = 0; - mir_snwprintf(temp, TranslateT("%s is away"), pmsg->parameters[1].c_str()); - sMessage = temp; - for (int i = 2; i < (int)pmsg->parameters.getCount(); i++) { + sMessage.Format(TranslateT("%s is away"), pmsg->parameters[1].c_str()); + for (int i = 2; i < pmsg->parameters.getCount(); i++) { sMessage += L": " + pmsg->parameters[i]; if (i != pmsg->parameters.getCount() - 1) sMessage += L" "; @@ -68,7 +62,7 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) if (index == 303) { // ISON command sMessage = TranslateT("These are online: "); - for (int i = 1; i < (int)pmsg->parameters.getCount(); i++) { + for (int i = 1; i < pmsg->parameters.getCount(); i++) { sMessage += pmsg->parameters[i]; if (i != pmsg->parameters.getCount() - 1) sMessage += L", "; @@ -80,8 +74,6 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) return pmsg->parameters[2] + L": " + pmsg->parameters[1]; } else if (pmsg->sCommand == L"NOTICE" && pmsg->parameters.getCount() > 1) { - wchar_t temp[500]; *temp = 0; - int l = pmsg->parameters[1].GetLength(); if (l > 3 && pmsg->parameters[1][0] == 1 && pmsg->parameters[1][l - 1] == 1) { // CTCP reply @@ -90,15 +82,13 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) tempstr.Delete(tempstr.GetLength() - 1, 1); CMStringW type = GetWord(tempstr.c_str(), 0); if (mir_wstrcmpi(type.c_str(), L"ping") == 0) - mir_snwprintf(temp, TranslateT("CTCP %s reply sent to %s"), type.c_str(), pmsg->parameters[0].c_str()); + sMessage.Format(TranslateT("CTCP %s reply sent to %s"), type.c_str(), pmsg->parameters[0].c_str()); else - mir_snwprintf(temp, TranslateT("CTCP %s reply sent to %s: %s"), type.c_str(), pmsg->parameters[0].c_str(), GetWordAddress(tempstr.c_str(), 1)); - sMessage = temp; + sMessage.Format(TranslateT("CTCP %s reply sent to %s: %s"), type.c_str(), pmsg->parameters[0].c_str(), GetWordAddress(tempstr.c_str(), 1)); } else { - mir_snwprintf(temp, TranslateT("Notice to %s: "), pmsg->parameters[0].c_str()); - sMessage = temp; - for (int i = 1; i < (int)pmsg->parameters.getCount(); i++) { + sMessage.Format(TranslateT("Notice to %s: "), pmsg->parameters[0].c_str()); + for (int i = 1; i < pmsg->parameters.getCount(); i++) { sMessage += pmsg->parameters[i]; if (i != pmsg->parameters.getCount() - 1) sMessage += L" "; @@ -114,15 +104,15 @@ static CMStringW FormatOutput(const CIrcMessage* pmsg) return pmsg->sCommand + L" : " + pmsg->parameters[0]; if (pmsg->parameters.getCount() > 1) - for (int i = 1; i < (int)pmsg->parameters.getCount(); i++) + for (int i = 1; i < pmsg->parameters.getCount(); i++) sMessage += pmsg->parameters[i] + L" "; } else { if (pmsg->prefix.sNick.GetLength()) sMessage = pmsg->prefix.sNick + L" "; sMessage += pmsg->sCommand + L" "; - for (int i = 0; i < (int)pmsg->parameters.getCount(); i++) - sMessage += pmsg->parameters[i] + L" "; + for (auto &it : pmsg->parameters) + sMessage += *it + L" "; } THE_END: diff --git a/protocols/IRCG/src/services.cpp b/protocols/IRCG/src/services.cpp index 07097155ce..1bb2274f9c 100644 --- a/protocols/IRCG/src/services.cpp +++ b/protocols/IRCG/src/services.cpp @@ -70,9 +70,9 @@ static CIrcProto* IrcGetInstanceByHContact(MCONTACT hContact) if (szProto == nullptr) return nullptr; - for (int i = 0; i < g_Instances.getCount(); i++) - if (!mir_strcmp(szProto, g_Instances[i]->m_szModuleName)) - return g_Instances[i]; + for (auto &it : g_Instances) + if (!mir_strcmp(szProto, it->m_szModuleName)) + return it; return nullptr; } diff --git a/protocols/IRCG/src/windows.cpp b/protocols/IRCG/src/windows.cpp index 759436f5fc..598bb17d69 100644 --- a/protocols/IRCG/src/windows.cpp +++ b/protocols/IRCG/src/windows.cpp @@ -563,10 +563,8 @@ void CQuickDlg::OnInitDialog() CCoolIrcDlg::OnInitDialog(); if (g_servers.getCount() > 0) { - for (int i = 0; i < g_servers.getCount(); i++) { - const SERVER_INFO& si = g_servers[i]; - m_serverCombo.AddStringA(si.m_name, (LPARAM)&si); - } + for (auto &si : g_servers) + m_serverCombo.AddStringA(si->m_name, (LPARAM)si); } else EnableWindow(GetDlgItem(m_hwnd, IDOK), false); -- cgit v1.2.3