summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDukePyrolator <DukePyrolator@anope.org>2010-12-30 06:44:18 +0100
committerDukePyrolator <DukePyrolator@anope.org>2010-12-30 06:44:18 +0100
commit3019ba6f434c3578a9bde6c941eb98828db3c221 (patch)
tree82de678563a4fb1a3602a70001cfad87fc67f70d /src
parent2784cd17fc5e0ee4ad0571a6b9e131fa38a93a65 (diff)
restoring topic for permchans on burst
Diffstat (limited to 'src')
-rw-r--r--src/chanserv.cpp4
-rw-r--r--src/regchannel.cpp3
2 files changed, 4 insertions, 3 deletions
diff --git a/src/chanserv.cpp b/src/chanserv.cpp
index 43d4d3b61..761f6cfbb 100644
--- a/src/chanserv.cpp
+++ b/src/chanserv.cpp
@@ -115,7 +115,7 @@ Anope::string get_mlock_modes(ChannelInfo *ci, int complete)
{
const ModeLock &ml = it->second;
ChannelMode *cm = ModeManager::FindChannelModeByName(ml.name);
- if (!cm)
+ if (!cm || cm->Type == MODE_LIST || cm->Type == MODE_STATUS)
continue;
if (ml.set)
@@ -123,7 +123,7 @@ Anope::string get_mlock_modes(ChannelInfo *ci, int complete)
else
neg += cm->ModeChar;
- if (complete && !ml.param.empty() && (cm->Type == MODE_PARAM || cm->Type == MODE_LIST))
+ if (complete && !ml.param.empty() && cm->Type == MODE_PARAM)
params += " " + ml.param;
}
diff --git a/src/regchannel.cpp b/src/regchannel.cpp
index 7ff3e753a..2ad4f8b12 100644
--- a/src/regchannel.cpp
+++ b/src/regchannel.cpp
@@ -567,6 +567,7 @@ void ChannelInfo::LoadMLock()
{
/* At this point, CMODE_PERM *must* be locked on the channel, so this is fine */
ircdproto->SendChannel(this->c, get_mlock_modes(this, true));
+ this->c->SetModesInternal(NULL, get_mlock_modes(this, true));
}
else
{
@@ -577,7 +578,7 @@ void ChannelInfo::LoadMLock()
}
check_modes(this->c);
- this->CheckTopic();
+ this->RestoreTopic();
}
}