summaryrefslogtreecommitdiff
path: root/src/modules/m_remove.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/m_remove.cpp')
-rw-r--r--src/modules/m_remove.cpp39
1 files changed, 24 insertions, 15 deletions
diff --git a/src/modules/m_remove.cpp b/src/modules/m_remove.cpp
index afd02d0f9..2c7fd8b9d 100644
--- a/src/modules/m_remove.cpp
+++ b/src/modules/m_remove.cpp
@@ -17,24 +17,33 @@ using namespace std;
* eg: +h can remove +hv and users with no modes. +a can remove +aohv and users with no modes.
*/
-Server *Srv;
+static Server *Srv;
/* This little function just converts a chanmode character (~ & @ & +) into an integer (5 4 3 2 1) */
/* XXX - this could be handy in the core, so it can be used elsewhere */
-int chartolevel(std::string privs)
-{
- /* XXX - if we just passed this a char, we could do a switch. Look nicer, really. */
-
- if (privs == "~")
- return 5;
- else if (privs == "&")
- return 4;
- else if (privs == "@")
- return 3;
- else if (privs == "%")
- return 2;
- else
- return 1;
+int chartolevel(std::string &privs)
+{1
+ const char* n = privs.c_str();
+
+ switch (*n)
+ {
+ case '~':
+ return 5;
+ break;
+ case '&':
+ return 4;
+ break;
+ case '@':
+ return 3;
+ break;
+ case '%':
+ return 2;
+ break;
+ default:
+ return 1;
+ break;
+ }
+ return 1;
}
class cmd_remove : public command_t