From 5d3b128ca2a63d7c04b51f58c0e9c390255a9365 Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Sun, 15 Apr 2018 00:20:56 +0100 Subject: Replace the remaining use of irc::string with irc::find. --- src/modules/m_censor.cpp | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_censor.cpp b/src/modules/m_censor.cpp index fce00dfc7..cb2bec85a 100644 --- a/src/modules/m_censor.cpp +++ b/src/modules/m_censor.cpp @@ -23,7 +23,7 @@ #include "inspircd.h" #include "modules/exemption.h" -typedef insp::flat_map censor_t; +typedef insp::flat_map censor_t; class ModuleCensor : public Module { @@ -63,10 +63,10 @@ class ModuleCensor : public Module if (!active) return MOD_RES_PASSTHRU; - irc::string text2 = details.text.c_str(); for (censor_t::iterator index = censors.begin(); index != censors.end(); index++) { - if (text2.find(index->first) != irc::string::npos) + size_t censorpos; + while ((censorpos = irc::find(details.text, index->first)) != std::string::npos) { if (index->second.empty()) { @@ -75,10 +75,9 @@ class ModuleCensor : public Module return MOD_RES_DENY; } - stdalgo::string::replace_all(text2, index->first, index->second); + details.text.replace(censorpos, index->first.size(), index->second); } } - details.text = text2.c_str(); return MOD_RES_PASSTHRU; } @@ -94,10 +93,12 @@ class ModuleCensor : public Module for (ConfigIter i = badwords.first; i != badwords.second; ++i) { ConfigTag* tag = i->second; - std::string str = tag->getString("text"); - irc::string pattern(str.c_str()); - str = tag->getString("replace"); - censors[pattern] = irc::string(str.c_str()); + const std::string text = tag->getString("text"); + if (text.empty()) + continue; + + const std::string replace = tag->getString("replace"); + censors[text] = replace; } } -- cgit v1.2.3