diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-02-10 23:40:54 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-02-10 23:40:54 +0000 |
commit | 2eb2cb7650e78612d8096b13f7cf075b1ec82a07 (patch) | |
tree | 0b0a7a3cfb5cd0fa429b95b61eab5c4259da0d00 /src/channels.c | |
parent | fcc08f61bc50f1f73bc1e3fe7d8e7c5b9a608668 (diff) |
Changed up a small part of the mode API for preparation for dynamic mode support at runtime
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2789 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src/channels.c')
-rw-r--r-- | src/channels.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/channels.c b/src/channels.c index 594388c2f..564989bd3 100644 --- a/src/channels.c +++ b/src/channels.c @@ -978,25 +978,25 @@ char *chan_get_modes(Channel * chan, int complete, int plus) char params[BUFSIZE]; char *end = res, *value, *pend = params, *pend2 = params; std::string param; - ChannelMode *cm; - ChannelModeParam *cmp; - std::map<char, ChannelMode *>::iterator it; if (chan->HasModes()) { - for (it = ModeManager::ChannelModesByChar.begin(); it != ModeManager::ChannelModesByChar.end(); ++it) + for (std::list<Mode *>::iterator it = ModeManager::Modes.begin(); it != ModeManager::Modes.end(); ++it) { - cm = it->second; + if ((*it)->Class != MC_CHANNEL) + continue; + + ChannelMode *cm = dynamic_cast<ChannelMode *>(*it); if (chan->HasMode(cm->Name)) { - *end++ = it->first; + *end++ = cm->ModeChar; if (complete) { if (cm->Type == MODE_PARAM) { - cmp = dynamic_cast<ChannelModeParam *>(cm); + ChannelModeParam *cmp = dynamic_cast<ChannelModeParam *>(cm); if (plus || !cmp->MinusNoArg) { |