From 0485aa80334120c00cd636b6fb2b3129ef1d4da2 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 24 Feb 2015 17:48:46 +0100 Subject: [PATCH] CClient: C++11 range-based for loops --- src/Client.cpp | 99 ++++++++++++++++++++++++-------------------------- 1 file changed, 47 insertions(+), 52 deletions(-) diff --git a/src/Client.cpp b/src/Client.cpp index b9377daa..c648c7bc 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -205,13 +205,12 @@ void CClient::ReadLine(const CString& sData) { return; // Don't forward this msg. We don't want the client getting us disconnected. } else if (sCommand.Equals("PROTOCTL")) { VCString vsTokens; - VCString::const_iterator it; sLine.Token(1, true).Split(" ", vsTokens, false); - for (it = vsTokens.begin(); it != vsTokens.end(); ++it) { - if (*it == "NAMESX") { + for (const CString& sToken : vsTokens) { + if (sToken == "NAMESX") { m_bNamesx = true; - } else if (*it == "UHNAMES") { + } else if (sToken == "UHNAMES") { m_bUHNames = true; } } @@ -433,12 +432,11 @@ void CClient::ReadLine(const CString& sData) { CString sChans = sLine.Token(1).TrimPrefix_n(); CString sKey = sLine.Token(2); - VCString vChans; - sChans.Split(",", vChans, false); + VCString vsChans; + sChans.Split(",", vsChans, false); sChans.clear(); - for (unsigned int a = 0; a < vChans.size(); a++) { - CString sChannel = vChans[a]; + for (CString& sChannel : vsChans) { bool bContinue = false; NETWORKMODULECALL(OnUserJoin(sChannel, sKey), m_pUser, m_pNetwork, this, &bContinue); if (bContinue) continue; @@ -470,12 +468,11 @@ void CClient::ReadLine(const CString& sData) { CString sChans = sLine.Token(1).TrimPrefix_n(); CString sMessage = sLine.Token(2, true).TrimPrefix_n(); - VCString vChans; - sChans.Split(",", vChans, false); + VCString vsChans; + sChans.Split(",", vsChans, false); sChans.clear(); - for (VCString::const_iterator it = vChans.begin(); it != vChans.end(); ++it) { - CString sChan = *it; + for (CString& sChan : vsChans) { bool bContinue = false; NETWORKMODULECALL(OnUserPart(sChan, sMessage), m_pUser, m_pNetwork, this, &bContinue); if (bContinue) continue; @@ -545,9 +542,9 @@ void CClient::SetNetwork(CIRCNetwork* pNetwork, bool bDisconnect, bool bReconnec // Tell the client they are no longer in these channels. const vector& vChans = m_pNetwork->GetChans(); - for (vector::const_iterator it = vChans.begin(); it != vChans.end(); ++it) { - if (!((*it)->IsDetached())) { - PutClient(":" + m_pNetwork->GetIRCNick().GetNickMask() + " PART " + (*it)->GetName()); + for (const CChan* pChan : vChans) { + if (!(pChan->IsDetached())) { + PutClient(":" + m_pNetwork->GetIRCNick().GetNickMask() + " PART " + pChan->GetName()); } } } else if (m_pUser) { @@ -607,11 +604,11 @@ bool CClient::SendMotd() { return false; } - for (unsigned int a = 0; a < vsMotd.size(); a++) { + for (const CString& sLine : vsMotd) { if (m_pNetwork) { - PutStatusNotice(m_pNetwork->ExpandString(vsMotd[a])); + PutStatusNotice(m_pNetwork->ExpandString(sLine)); } else { - PutStatusNotice(m_pUser->ExpandString(vsMotd[a])); + PutStatusNotice(m_pUser->ExpandString(sLine)); } } @@ -812,17 +809,16 @@ void CClient::PutModNotice(const CString& sModule, const CString& sLine) { } void CClient::PutModule(const CString& sModule, const CString& sLine) { - VCString vsLines; - VCString::iterator it; if (!m_pUser) { return; } DEBUG("(" << GetFullName() << ") ZNC -> CLI [:" + m_pUser->GetStatusPrefix() + ((sModule.empty()) ? "status" : sModule) + "!znc@znc.in PRIVMSG " << GetNick() << " :" << sLine << "]"); + VCString vsLines; sLine.Split("\n", vsLines); - for (it = vsLines.begin(); it != vsLines.end(); ++it) { - Write(":" + m_pUser->GetStatusPrefix() + ((sModule.empty()) ? "status" : sModule) + "!znc@znc.in PRIVMSG " + GetNick() + " :" + (*it) + "\r\n"); + for (const CString& s : vsLines) { + Write(":" + m_pUser->GetStatusPrefix() + ((sModule.empty()) ? "status" : sModule) + "!znc@znc.in PRIVMSG " + GetNick() + " :" + s + "\r\n"); } } @@ -882,11 +878,13 @@ void CClient::HandleCap(const CString& sLine) if (sSubCmd.Equals("LS")) { SCString ssOfferCaps; GLOBALMODULECALL(OnClientCapLs(this, ssOfferCaps), NOTHING); - CString sRes; - for (SCString::iterator i = ssOfferCaps.begin(); i != ssOfferCaps.end(); ++i) { - sRes += *i + " "; - } - RespondCap("LS :" + sRes + "userhost-in-names multi-prefix znc.in/server-time-iso znc.in/batch znc.in/self-message"); + ssOfferCaps.insert("userhost-in-names"); + ssOfferCaps.insert("multi-prefix"); + ssOfferCaps.insert("znc.in/server-time-iso"); + ssOfferCaps.insert("znc.in/batch"); + ssOfferCaps.insert("znc.in/self-message"); + CString sRes = CString(" ").Join(ssOfferCaps.begin(), ssOfferCaps.end()); + RespondCap("LS :" + sRes); m_bInCap = true; } else if (sSubCmd.Equals("END")) { m_bInCap = false; @@ -899,12 +897,11 @@ void CClient::HandleCap(const CString& sLine) } } else if (sSubCmd.Equals("REQ")) { VCString vsTokens; - VCString::iterator it; sLine.Token(2, true).TrimPrefix_n(":").Split(" ", vsTokens, false); - for (it = vsTokens.begin(); it != vsTokens.end(); ++it) { + for (const CString& sToken : vsTokens) { bool bVal = true; - CString sCap = *it; + CString sCap = sToken; if (sCap.TrimPrefix("-")) bVal = false; @@ -919,46 +916,44 @@ void CClient::HandleCap(const CString& sLine) } // All is fine, we support what was requested - for (it = vsTokens.begin(); it != vsTokens.end(); ++it) { + for (const CString& sToken : vsTokens) { bool bVal = true; - if (it->TrimPrefix("-")) + CString sCap = sToken; + if (sCap.TrimPrefix("-")) bVal = false; - if ("multi-prefix" == *it) { + if ("multi-prefix" == sCap) { m_bNamesx = bVal; - } else if ("userhost-in-names" == *it) { + } else if ("userhost-in-names" == sCap) { m_bUHNames = bVal; - } else if ("znc.in/server-time-iso" == *it) { + } else if ("znc.in/server-time-iso" == sCap) { m_bServerTime = bVal; - } else if ("znc.in/batch" == *it) { + } else if ("znc.in/batch" == sCap) { m_bBatch = bVal; - } else if ("znc.in/self-message" == *it) { + } else if ("znc.in/self-message" == sCap) { m_bSelfMessage = bVal; } - GLOBALMODULECALL(OnClientCapRequest(this, *it, bVal), NOTHING); + GLOBALMODULECALL(OnClientCapRequest(this, sCap, bVal), NOTHING); if (bVal) { - m_ssAcceptedCaps.insert(*it); + m_ssAcceptedCaps.insert(sCap); } else { - m_ssAcceptedCaps.erase(*it); + m_ssAcceptedCaps.erase(sCap); } } RespondCap("ACK :" + sLine.Token(2, true).TrimPrefix_n(":")); } else if (sSubCmd.Equals("LIST")) { - CString sList = ""; - for (SCString::iterator i = m_ssAcceptedCaps.begin(); i != m_ssAcceptedCaps.end(); ++i) { - sList += *i + " "; - } - RespondCap("LIST :" + sList.TrimSuffix_n(" ")); + CString sList = CString(" ").Join(m_ssAcceptedCaps.begin(), m_ssAcceptedCaps.end()); + RespondCap("LIST :" + sList); } else if (sSubCmd.Equals("CLEAR")) { SCString ssRemoved; - for (SCString::iterator i = m_ssAcceptedCaps.begin(); i != m_ssAcceptedCaps.end(); ++i) { + for (const CString& sCap : m_ssAcceptedCaps) { bool bRemoving = false; - GLOBALMODULECALL(IsClientCapSupported(this, *i, false), &bRemoving); + GLOBALMODULECALL(IsClientCapSupported(this, sCap, false), &bRemoving); if (bRemoving) { - GLOBALMODULECALL(OnClientCapRequest(this, *i, false), NOTHING); - ssRemoved.insert(*i); + GLOBALMODULECALL(OnClientCapRequest(this, sCap, false), NOTHING); + ssRemoved.insert(sCap); } } if (m_bNamesx) { @@ -982,9 +977,9 @@ void CClient::HandleCap(const CString& sLine) ssRemoved.insert("znc.in/self-message"); } CString sList = ""; - for (SCString::iterator i = ssRemoved.begin(); i != ssRemoved.end(); ++i) { - m_ssAcceptedCaps.erase(*i); - sList += "-" + *i + " "; + for (const CString& sCap : ssRemoved) { + m_ssAcceptedCaps.erase(sCap); + sList += "-" + sCap + " "; } RespondCap("ACK :" + sList.TrimSuffix_n(" ")); } else {