summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/helperfuncs.cpp28
-rw-r--r--src/inspircd.cpp24
2 files changed, 28 insertions, 24 deletions
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp
index 4afe7afeb..3fce34c77 100644
--- a/src/helperfuncs.cpp
+++ b/src/helperfuncs.cpp
@@ -408,6 +408,34 @@ bool InspIRCd::IsChannel(const char *chname)
return true;
}
+bool InspIRCd::IsNick(const char* n)
+{
+ if (!n || !*n)
+ return false;
+
+ int p = 0;
+ for (char* i = (char*)n; *i; i++, p++)
+ {
+ if ((*i >= 'A') && (*i <= '}'))
+ {
+ /* "A"-"}" can occur anywhere in a nickname */
+ continue;
+ }
+
+ if ((((*i >= '0') && (*i <= '9')) || (*i == '-')) && (i > n))
+ {
+ /* "0"-"9", "-" can occur anywhere BUT the first char of a nickname */
+ continue;
+ }
+
+ /* invalid character! abort */
+ return false;
+ }
+
+ /* too long? or not -- pointer arithmetic rocks */
+ return (p < NICKMAX - 1);
+}
+
void InspIRCd::OpenLog(char** argv, int argc)
{
if (!*this->LogFileName)
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 60af8e235..2f35c9528 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -708,30 +708,6 @@ bool InspIRCd::IsIdent(const char* n)
}
-bool InspIRCd::IsNick(const char* n)
-{
- if (!n || !*n)
- return false;
-
- int p = 0;
- for (char* i = (char*)n; *i; i++, p++)
- {
- /* "A"-"}" can occur anywhere in a nickname */
- if ((*i >= 'A') && (*i <= '}'))
- {
- continue;
- }
- /* "0"-"9", "-" can occur anywhere BUT the first char of a nickname */
- if ((((*i >= '0') && (*i <= '9')) || (*i == '-')) && (i > n))
- {
- continue;
- }
- /* invalid character! abort */
- return false;
- }
- return (p < NICKMAX - 1);
-}
-
int InspIRCd::Run()
{
while (true)