]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Merge branch 'master+gnutlsprio'
[user/henk/code/inspircd.git] / src / mode.cpp
index c70f474f764c2dc0d94ca0cf7a92c937722254ad..671b5d85456ddd44ec294a049c20d998e40c120b 100644 (file)
@@ -218,7 +218,7 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, Mode
        std::string& parameter = mcitem.param;
        // crop mode parameter size to 250 characters
        if (parameter.length() > 250 && adding)
-               parameter = parameter.substr(0, 250);
+               parameter.erase(250);
 
        ModResult MOD_RESULT;
        FIRST_MOD_RESULT(OnRawMode, MOD_RESULT, (user, chan, mh, parameter, adding));
@@ -268,8 +268,8 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, Mode
        }
 
        // Ask mode watchers whether this mode change is OK
-       std::pair<ModeWatchIter, ModeWatchIter> itpair = modewatchermap.equal_range(mh->name);
-       for (ModeWatchIter i = itpair.first; i != itpair.second; ++i)
+       std::pair<ModeWatcherMap::iterator, ModeWatcherMap::iterator> itpair = modewatchermap.equal_range(mh->name);
+       for (ModeWatcherMap::iterator i = itpair.first; i != itpair.second; ++i)
        {
                ModeWatcher* mw = i->second;
                if (mw->GetModeType() == type)
@@ -320,7 +320,7 @@ ModeAction ModeParser::TryMode(User* user, User* targetuser, Channel* chan, Mode
                return ma;
 
        itpair = modewatchermap.equal_range(mh->name);
-       for (ModeWatchIter i = itpair.first; i != itpair.second; ++i)
+       for (ModeWatcherMap::iterator i = itpair.first; i != itpair.second; ++i)
        {
                ModeWatcher* mw = i->second;
                if (mw->GetModeType() == type)
@@ -493,18 +493,11 @@ void ModeParser::ShowListModeList(User* user, Channel* chan, ModeHandler* mh)
                if (MOD_RESULT == MOD_RES_DENY)
                        return;
 
-               unsigned char mletter = mh->GetModeChar();
                bool display = true;
-               if (!user->HasPrivPermission("channels/auspex") && ServerInstance->Config->HideModeLists[mletter] && (chan->GetPrefixValue(user) < HALFOP_VALUE))
-               {
-                       user->WriteNumeric(ERR_CHANOPRIVSNEEDED, "%s :You do not have access to view the +%c list",
-                               chan->name.c_str(), mletter);
-                       display = false;
-               }
 
                // Ask mode watchers whether it's OK to show the list
-               std::pair<ModeWatchIter, ModeWatchIter> itpair = modewatchermap.equal_range(mh->name);
-               for (ModeWatchIter i = itpair.first; i != itpair.second; ++i)
+               std::pair<ModeWatcherMap::iterator, ModeWatcherMap::iterator> itpair = modewatchermap.equal_range(mh->name);
+               for (ModeWatcherMap::iterator i = itpair.first; i != itpair.second; ++i)
                {
                        ModeWatcher* mw = i->second;
                        if (mw->GetModeType() == MODETYPE_CHANNEL)
@@ -797,7 +790,7 @@ std::string ModeParser::BuildPrefixes(bool lettersAndModes)
 {
        std::string mletters;
        std::string mprefixes;
-       std::map<int,std::pair<char,char> > prefixes;
+       insp::flat_map<int, std::pair<char, char> > prefixes;
 
        const PrefixModeList& list = GetPrefixModes();
        for (PrefixModeList::const_iterator i = list.begin(); i != list.end(); ++i)
@@ -807,7 +800,7 @@ std::string ModeParser::BuildPrefixes(bool lettersAndModes)
                        prefixes[pm->GetPrefixRank()] = std::make_pair(pm->GetPrefix(), pm->GetModeChar());
        }
 
-       for(std::map<int,std::pair<char,char> >::reverse_iterator n = prefixes.rbegin(); n != prefixes.rend(); n++)
+       for (insp::flat_map<int, std::pair<char, char> >::reverse_iterator n = prefixes.rbegin(); n != prefixes.rend(); ++n)
        {
                mletters = mletters + n->second.first;
                mprefixes = mprefixes + n->second.second;
@@ -823,8 +816,8 @@ void ModeParser::AddModeWatcher(ModeWatcher* mw)
 
 bool ModeParser::DelModeWatcher(ModeWatcher* mw)
 {
-       std::pair<ModeWatchIter, ModeWatchIter> itpair = modewatchermap.equal_range(mw->GetModeName());
-       for (ModeWatchIter i = itpair.first; i != itpair.second; ++i)
+       std::pair<ModeWatcherMap::iterator, ModeWatcherMap::iterator> itpair = modewatchermap.equal_range(mw->GetModeName());
+       for (ModeWatcherMap::iterator i = itpair.first; i != itpair.second; ++i)
        {
                if (i->second == mw)
                {