summaryrefslogtreecommitdiff
path: root/modules/commands/cs_clone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/cs_clone.cpp')
-rw-r--r--modules/commands/cs_clone.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/modules/commands/cs_clone.cpp b/modules/commands/cs_clone.cpp
index 40ef67b53..5a5d52065 100644
--- a/modules/commands/cs_clone.cpp
+++ b/modules/commands/cs_clone.cpp
@@ -133,16 +133,24 @@ public:
}
else if (what.equals_ci("BADWORDS"))
{
- BadWords *target_badwords = target_ci->GetExt<BadWords>("badwords"),
+ BadWords *target_badwords = target_ci->Require<BadWords>("badwords"),
*badwords = ci->Require<BadWords>("badwords");
- if (target_badwords)
+
+ if (target_badwords && badwords)
+ {
target_badwords->ClearBadWords();
- if (badwords)
+
for (unsigned i = 0; i < badwords->GetBadWordCount(); ++i)
{
const BadWord *bw = badwords->GetBadWord(i);
target_badwords->AddBadWord(bw->word, bw->type);
}
+ }
+
+ if (badwords)
+ badwords->Check();
+ if (target_badwords)
+ target_badwords->Check();
source.Reply(_("All badword entries from \002%s\002 have been cloned to \002%s\002."), channel.c_str(), target.c_str());
}