]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/cmd_list.cpp
Remove the last uses of localised fake clients. This removes a lot of allocations...
[user/henk/code/inspircd.git] / src / cmd_list.cpp
index 78e586aabe896ec2c7dedb4b01e9ce6e392ea134..1e994965b211af2961435a0f007e70f552aa8d9a 100644 (file)
  * ---------------------------------------------------
  */
 
-#include "users.h"
 #include "inspircd.h"
 #include "commands/cmd_list.h"
 #include "wildcard.h"
 
 /** Handle /LIST
  */
-extern "C" command_t* init_command(InspIRCd* Instance)
+extern "C" DllExport command_t* init_command(InspIRCd* Instance)
 {
        return new cmd_list(Instance);
 }
@@ -55,19 +54,22 @@ CmdResult cmd_list::Handle (const char** parameters, int pcnt, userrec *user)
                if (too_many || too_few)
                        continue;
 
-               if (pcnt && (!match(i->second->name, parameters[0]) || (*i->second->topic && !match(i->second->topic, parameters[0]))))
-                       continue;
+               if (pcnt)
+               {
+                       if (!match(i->second->name, parameters[0]) && !match(i->second->topic, parameters[0]))
+                               continue;
+               }
 
                // if the channel is not private/secret, OR the user is on the channel anyway
                bool n = i->second->HasUser(user);
-               if ((i->second->modes[CM_PRIVATE]) && (!n))
+               if ((i->second->IsModeSet('p')) && (!n))
                {
                        if (users)
                                user->WriteServ("322 %s *",user->nick,i->second->name);
                }
                else
                {
-                       if (((!(i->second->modes[CM_PRIVATE])) && (!(i->second->modes[CM_SECRET]))) || (n))
+                       if (((!(i->second->IsModeSet('p'))) && (!(i->second->IsModeSet('s')))) || (n))
                        {
                                long users = i->second->GetUserCounter();
                                if (users)
@@ -79,3 +81,4 @@ CmdResult cmd_list::Handle (const char** parameters, int pcnt, userrec *user)
 
        return CMD_SUCCESS;
 }
+