]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Clean up the logic for parsing oper mode privileges.
authorSadie Powell <sadie@witchery.services>
Sat, 11 Apr 2020 13:29:30 +0000 (14:29 +0100)
committerSadie Powell <sadie@witchery.services>
Sat, 11 Apr 2020 13:29:30 +0000 (14:29 +0100)
src/users.cpp

index 72a6c23af9e0bcd49a0e4a0530fb73b760a27ea7..e8e2926155fedd87ff3a68c3e434a469618c44a5 100644 (file)
@@ -428,30 +428,24 @@ void OperInfo::init()
                AllowedOperCommands.AddList(tag->getString("commands"));
                AllowedPrivs.AddList(tag->getString("privs"));
 
                AllowedOperCommands.AddList(tag->getString("commands"));
                AllowedPrivs.AddList(tag->getString("privs"));
 
-               std::string modes = tag->getString("usermodes");
-               for (std::string::const_iterator c = modes.begin(); c != modes.end(); ++c)
+               const std::string umodes = tag->getString("usermodes");
+               for (std::string::const_iterator c = umodes.begin(); c != umodes.end(); ++c)
                {
                {
-                       if (*c == '*')
-                       {
+                       const char& chr = *c;
+                       if (chr == '*')
                                this->AllowedUserModes.set();
                                this->AllowedUserModes.set();
-                       }
-                       else if (*c >= 'A' && *c <= 'z')
-                       {
-                               this->AllowedUserModes[*c - 'A'] = true;
-                       }
+                       else if (ModeParser::IsModeChar(chr))
+                               this->AllowedUserModes[chr - 'A'] = true;
                }
 
                }
 
-               modes = tag->getString("chanmodes");
-               for (std::string::const_iterator c = modes.begin(); c != modes.end(); ++c)
+               const std::string cmodes = tag->getString("chanmodes");
+               for (std::string::const_iterator c = cmodes.begin(); c != cmodes.end(); ++c)
                {
                {
-                       if (*c == '*')
-                       {
+                       const char& chr = *c;
+                       if (chr == '*')
                                this->AllowedChanModes.set();
                                this->AllowedChanModes.set();
-                       }
-                       else if (*c >= 'A' && *c <= 'z')
-                       {
-                               this->AllowedChanModes[*c - 'A'] = true;
-                       }
+                       else if (ModeParser::IsModeChar(chr))
+                               this->AllowedChanModes[chr - 'A'] = true;
                }
        }
 }
                }
        }
 }