CClient: share the chan matching code

This commit is contained in:
J-P Nurmi
2015-09-08 00:07:05 +02:00
parent 1a3e9ecb86
commit 7916efa997
3 changed files with 20 additions and 36 deletions

View File

@@ -361,15 +361,7 @@ void CClient::ReadLine(const CString& sData) {
return;
}
VCString vsChans;
sPatterns.Replace(",", " ");
sPatterns.Split(" ", vsChans, false, "", "", true, true);
set<CChan*> sChans;
for (const CString& sChan : vsChans) {
vector<CChan*> vChans = m_pNetwork->FindChans(sChan);
sChans.insert(vChans.begin(), vChans.end());
}
set<CChan*> sChans = MatchChans(sPatterns);
unsigned int uDetached = 0;
for (CChan* pChan : sChans) {
@@ -1062,3 +1054,16 @@ void CClient::EchoMessage(const CMessage& Message)
}
}
}
set<CChan*> CClient::MatchChans(const CString& sPatterns) const
{
VCString vsPatterns;
sPatterns.Replace_n(",", " ").Split(" ", vsPatterns, false, "", "", true, true);
set<CChan*> sChans;
for (const CString& sPattern : vsPatterns) {
vector<CChan*> vChans = m_pNetwork->FindChans(sPattern);
sChans.insert(vChans.begin(), vChans.end());
}
return sChans;
}