summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-11-18 02:51:46 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2009-11-18 02:51:46 +0000
commit5179a0a40f7edcf510fd3b296962c4d90c0840f9 (patch)
tree56a479f11b2c6f72ea80cbbdc6d7976203b4c3ec /src/core
parentda8a1c7b6068dcc079d6f710a877ed53fabff86f (diff)
Delete the correct entries from akick and badwords list when given a numlist
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2657 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/core')
-rw-r--r--src/core/bs_badwords.c7
-rw-r--r--src/core/cs_akick.c20
2 files changed, 15 insertions, 12 deletions
diff --git a/src/core/bs_badwords.c b/src/core/bs_badwords.c
index f8f98be09..6709dab0e 100644
--- a/src/core/bs_badwords.c
+++ b/src/core/bs_badwords.c
@@ -126,6 +126,9 @@ class CommandBSBadwords : public Command
{
notice_lang(s_BotServ, u, BOT_BADWORDS_DELETED_SEVERAL, deleted, ci->name);
}
+
+ if (deleted)
+ ci->CleanBadWords();
}
else
{
@@ -239,7 +242,6 @@ class BSBadwords : public Module
int badwords_del_callback(User * u, int num, va_list args)
{
- BadWord *bw;
ChannelInfo *ci = va_arg(args, ChannelInfo *);
int *last = va_arg(args, int *);
@@ -248,8 +250,7 @@ int badwords_del_callback(User * u, int num, va_list args)
if (num < 1 || num > ci->GetBadWordCount())
return 0;
- bw = ci->GetBadWord(num - 1);
- ci->EraseBadWord(bw);
+ ci->GetBadWord(num - 1)->InUse = false;
return 1;
}
diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c
index 2753b947f..13bbad0a2 100644
--- a/src/core/cs_akick.c
+++ b/src/core/cs_akick.c
@@ -56,7 +56,7 @@ int akick_del_callback(User * u, int num, va_list args)
if (num < 1 || num > ci->GetAkickCount())
return 0;
- ci->EraseAkick(ci->GetAkick(num - 1));
+ ci->GetAkick(num - 1)->InUse = false;
return 1;
}
@@ -65,7 +65,7 @@ int akick_list(User * u, int index, ChannelInfo * ci, int *sent_header)
{
AutoKick *akick = ci->GetAkick(index);
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
return 0;
if (!*sent_header) {
notice_lang(s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name);
@@ -95,7 +95,7 @@ int akick_view(User * u, int index, ChannelInfo * ci, int *sent_header)
char timebuf[64];
struct tm tm;
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
return 0;
if (!*sent_header) {
notice_lang(s_ChanServ, u, CHAN_AKICK_LIST_HEADER, ci->name);
@@ -235,7 +235,7 @@ class CommandCSAKick : public Command
for (unsigned j = 0; j < ci->GetAkickCount(); ++j)
{
akick = ci->GetAkick(j);
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
continue;
if ((akick->HasFlag(AK_ISNICK)) ? akick->nc == nc : akick->mask == mask)
{
@@ -284,7 +284,7 @@ class CommandCSAKick : public Command
{
akick = ci->GetAkick(i);
- if (!akick->HasFlag(AK_USED) || akick->HasFlag(AK_ISNICK))
+ if (!akick->InUse || akick->HasFlag(AK_ISNICK))
continue;
if (akick->mask == mask)
break;
@@ -324,7 +324,7 @@ class CommandCSAKick : public Command
{
akick = ci->GetAkick(i);
- if (!akick->HasFlag(AK_USED) || akick->HasFlag(AK_ISNICK))
+ if (!akick->InUse || akick->HasFlag(AK_ISNICK))
continue;
if (akick->mask == mask)
break;
@@ -370,6 +370,8 @@ class CommandCSAKick : public Command
notice_lang(s_ChanServ, u, CHAN_AKICK_DELETED_ONE, ci->name);
else
notice_lang(s_ChanServ, u, CHAN_AKICK_DELETED_SEVERAL, deleted, ci->name);
+ if (deleted)
+ ci->CleanAkick();
}
else
{
@@ -380,7 +382,7 @@ class CommandCSAKick : public Command
{
akick = ci->GetAkick(i);
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
continue;
if (((akick->HasFlag(AK_ISNICK)) && akick->nc == nc)
|| (!(akick->HasFlag(AK_ISNICK))
@@ -421,7 +423,7 @@ class CommandCSAKick : public Command
{
akick = ci->GetAkick(i);
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
continue;
if (!mask.empty())
{
@@ -460,7 +462,7 @@ class CommandCSAKick : public Command
{
akick = ci->GetAkick(i);
- if (!(akick->HasFlag(AK_USED)))
+ if (!akick->InUse)
continue;
if (!mask.empty())
{