本文整理汇总了C++中anope::string::equals_cs方法的典型用法代码示例。如果您正苦于以下问题:C++ string::equals_cs方法的具体用法?C++ string::equals_cs怎么用?C++ string::equals_cs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类anope::string
的用法示例。
在下文中一共展示了string::equals_cs方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AddMode
void StackerInfo::AddMode(Mode *mode, bool set, const Anope::string ¶m)
{
bool is_param = mode->type == MODE_PARAM;
std::list<std::pair<Mode *, Anope::string> > *list, *otherlist;
if (set)
{
list = &AddModes;
otherlist = &DelModes;
}
else
{
list = &DelModes;
otherlist = &AddModes;
}
/* Loop through the list and find if this mode is already on here */
std::list<std::pair<Mode *, Anope::string > >::iterator it, it_end;
for (it = list->begin(), it_end = list->end(); it != it_end; ++it)
{
/* The param must match too (can have multiple status or list modes), but
* if it is a param mode it can match no matter what the param is
*/
if (it->first == mode && (is_param || param.equals_cs(it->second)))
{
list->erase(it);
/* It can only be on this list once */
break;
}
}
/* If the mode is on the other list, remove it from there (eg, we don't want +o-o Adam Adam) */
for (it = otherlist->begin(), it_end = otherlist->end(); it != it_end; ++it)
{
/* The param must match too (can have multiple status or list modes), but
* if it is a param mode it can match no matter what the param is
*/
if (it->first == mode && (is_param || param.equals_cs(it->second)))
{
otherlist->erase(it);
return;
/* Note that we return here because this is like setting + and - on the same mode within the same
* cycle, no change is made. This causes no problems with something like - + and -, because after the
* second mode change the list is empty, and the third mode change starts fresh.
*/
}
}
/* Add this mode and its param to our list */
list->push_back(std::make_pair(mode, param));
}
示例2: DoAdd
void DoAdd(CommandSource &source, ChanServ::Channel *ci, const Anope::string &word)
{
size_t pos = word.rfind(' ');
BadWordType bwtype = BW_ANY;
Anope::string realword = word;
if (pos != Anope::string::npos)
{
Anope::string opt = word.substr(pos + 1);
if (!opt.empty())
{
if (opt.equals_ci("SINGLE"))
bwtype = BW_SINGLE;
else if (opt.equals_ci("START"))
bwtype = BW_START;
else if (opt.equals_ci("END"))
bwtype = BW_END;
}
realword = word.substr(0, pos);
}
unsigned badwordsmax = Config->GetModule(this->module)->Get<unsigned>("badwordsmax");
if (badwords->GetBadWordCount(ci) >= badwordsmax)
{
source.Reply(_("Sorry, you can only have \002{0}\002 bad words entries on a channel."), badwordsmax);
return;
}
bool casesensitive = Config->GetModule(this->module)->Get<bool>("casesensitive");
for (BadWord *bw : badwords->GetBadWords(ci))
if ((casesensitive && realword.equals_cs(bw->GetWord())) || (!casesensitive && realword.equals_ci(bw->GetWord())))
{
source.Reply(_("\002{0}\002 already exists in \002{1}\002 bad words list."), bw->GetWord(), ci->GetName());
return;
}
bool override = !source.AccessFor(ci).HasPriv("BADWORDS");
Log(override ? LOG_OVERRIDE : LOG_COMMAND, source, this, ci) << "ADD " << realword;
badwords->AddBadWord(ci, realword, bwtype);
source.Reply(_("\002{0}\002 added to \002{1}\002 bad words list."), realword, ci->GetName());
}