]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/u_listmode.h
Check for windows drive letters on the start of paths and treat them the same as...
[user/henk/code/inspircd.git] / include / u_listmode.h
index 6c6e2ca28fbc63374a5e9c096e824eb390983c48..5c5ddd9ffe42df670e1ba4f599979fb8dcfbaf46 100644 (file)
@@ -87,10 +87,10 @@ class ListModeBase : public ModeHandler
        std::string infokey;
        /** Numeric to use when outputting the list
         */
-       std::string listnumeric;
+       unsigned int listnumeric;
        /** Numeric to indicate end of list
         */
-       std::string endoflistnumeric;
+       unsigned int endoflistnumeric;
        /** String to send for end of list
         */
        std::string endofliststring;
@@ -115,7 +115,7 @@ class ListModeBase : public ModeHandler
         * @param autotidy Automatically tidy list entries on add
         * @param ctag Configuration tag to get limits from
         */
-       ListModeBase(InspIRCd* Instance, char modechar, const std::string &eolstr, const std::string &lnum, const std::string &eolnum, bool autotidy, const std::string &ctag = "banlist")
+       ListModeBase(InspIRCd* Instance, char modechar, const std::string &eolstr, unsigned int lnum, unsigned int eolnum, bool autotidy, const std::string &ctag = "banlist")
        : ModeHandler(Instance, modechar, 1, 1, true, MODETYPE_CHANNEL, false), listnumeric(lnum), endoflistnumeric(eolnum), endofliststring(eolstr), tidy(autotidy), configtag(ctag)
        {
                this->DoRehash();
@@ -153,15 +153,15 @@ class ListModeBase : public ModeHandler
                {
                        for (modelist::reverse_iterator it = el->rbegin(); it != el->rend(); ++it)
                        {
-                               user->WriteServ("%s %s %s %s %s %s", listnumeric.c_str(), user->nick, channel->name, it->mask.c_str(), it->nick.c_str(), it->time.c_str());
+                               user->WriteNumeric(listnumeric, "%s %s %s %s %s", user->nick, channel->name, it->mask.c_str(), it->nick.c_str(), it->time.c_str());
                        }
                }
-               user->WriteServ("%s %s %s :%s", endoflistnumeric.c_str(), user->nick, channel->name, endofliststring.c_str());
+               user->WriteNumeric(endoflistnumeric, "%s %s :%s", user->nick, channel->name, endofliststring.c_str());
        }
 
        virtual void DisplayEmptyList(User* user, Channel* channel)
        {
-               user->WriteServ("%s %s %s :%s", endoflistnumeric.c_str(), user->nick, channel->name, endofliststring.c_str());
+               user->WriteNumeric(endoflistnumeric, "%s %s :%s", user->nick, channel->name, endofliststring.c_str());
        }
 
        /** Remove all instances of the mode from a channel.
@@ -176,8 +176,8 @@ class ListModeBase : public ModeHandler
                {
                        irc::modestacker modestack(false);
                        std::deque<std::string> stackresult;
-                       const char* mode_junk[MAXMODES+2];
-                       mode_junk[0] = channel->name;
+                       std::vector<std::string> mode_junk;
+                       mode_junk.push_back(channel->name);
 
                        for (modelist::iterator it = el->begin(); it != el->end(); it++)
                        {
@@ -194,10 +194,10 @@ class ListModeBase : public ModeHandler
                        {
                                for (size_t j = 0; j < stackresult.size(); j++)
                                {
-                                       mode_junk[j+1] = stackresult[j].c_str();
+                                       mode_junk.push_back(stackresult[j]);
                                }
 
-                               ServerInstance->SendMode(mode_junk, stackresult.size() + 1, ServerInstance->FakeClient);                
+                               ServerInstance->SendMode(mode_junk, ServerInstance->FakeClient);                
                        }
                }
        }