]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/u_listmode.h
First phase of conversion to dynamic limits on all the lengths, configured via the...
[user/henk/code/inspircd.git] / include / u_listmode.h
index 3b0fb5c3f0bc16151a258cf450413c3cd4ff3bcd..5d1607b5c8dc741ef9ec4c1714e14e1d19246501 100644 (file)
@@ -31,7 +31,7 @@ class ListItem : public classbase
 {
 public:
        std::string nick;
-       irc::string mask;
+       std::string mask;
        std::string time;
 };
 
@@ -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.c_str(), channel->name.c_str(), 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.c_str(), channel->name.c_str(), 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.c_str(), channel->name.c_str(), endofliststring.c_str());
        }
 
        /** Remove all instances of the mode from a channel.
@@ -182,9 +182,9 @@ class ListModeBase : public ModeHandler
                        for (modelist::iterator it = el->begin(); it != el->end(); it++)
                        {
                                if (stack)
-                                       stack->Push(this->GetModeChar(), assign(it->mask));
+                                       stack->Push(this->GetModeChar(), it->mask);
                                else
-                                       modestack.Push(this->GetModeChar(), assign(it->mask));
+                                       modestack.Push(this->GetModeChar(), it->mask);
                        }
 
                        if (stack)
@@ -284,7 +284,7 @@ class ListModeBase : public ModeHandler
 
                        for (limitlist::iterator it = chanlimits.begin(); it != chanlimits.end(); it++)
                        {
-                               if (match(channel->name, it->mask.c_str()))
+                               if (match(channel->name, it->mask))
                                {
                                        // We have a pattern matching the channel...
                                        maxsize = el->size();
@@ -304,7 +304,7 @@ class ListModeBase : public ModeHandler
                                                {
                                                        // And now add the mask onto the list...
                                                        ListItem e;
-                                                       e.mask = assign(parameter);
+                                                       e.mask = parameter;
                                                        e.nick = servermode ? ServerInstance->Config->ServerName : source->nick;
                                                        e.time = stringtime();
 
@@ -323,7 +323,7 @@ class ListModeBase : public ModeHandler
                        /* List is full, give subclass a chance to send a custom message */
                        if (!TellListTooLong(source, channel, parameter))
                        {
-                               source->WriteNumeric(478, "%s %s %s :Channel ban/ignore list is full", source->nick, channel->name, parameter.c_str());
+                               source->WriteNumeric(478, "%s %s %s :Channel ban/ignore list is full", source->nick.c_str(), channel->name.c_str(), parameter.c_str());
                        }
                        
                        parameter = "";
@@ -402,7 +402,7 @@ class ListModeBase : public ModeHandler
                {
                        for (modelist::iterator it = mlist->begin(); it != mlist->end(); it++)
                        {
-                               modestack.Push(std::string(1, mode)[0], assign(it->mask));
+                               modestack.Push(std::string(1, mode)[0], it->mask);
                        }
                }
                while (modestack.GetStackedLine(stackresult))