aboutsummaryrefslogtreecommitdiff
path: root/src/hashcomp.cpp
diff options
context:
space:
mode:
authorGravatar w00t2008-12-08 13:54:37 +0000
committerGravatar w00t2008-12-08 13:54:37 +0000
commit4579758c8f9051cf87b5bf06ba12e6125104d0eb (patch)
treeafe21fac8c72d0644b770b08ddb5a1c9e8f0c948 /src/hashcomp.cpp
parentFix silly oversight discovered by tra26 (thanks!) where the core tries to han... (diff)
Use national charset pointer instead of RFC charset pointer. Should fix hash equivilancy checking, etc.
Try this, Phoenix. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10871 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/hashcomp.cpp')
-rw-r--r--src/hashcomp.cpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp
index ed68cd941..a613a8073 100644
--- a/src/hashcomp.cpp
+++ b/src/hashcomp.cpp
@@ -56,7 +56,7 @@ void nspace::strlower(char *n)
if (n)
{
for (char* t = n; *t; t++)
- *t = rfc_case_insensitive_map[(unsigned char)*t];
+ *t = national_case_insensitive_map[(unsigned char)*t];
}
}
@@ -73,12 +73,12 @@ void nspace::strlower(char *n)
/* XXX: NO DATA COPIES! :)
* The hash function here is practically
* a copy of the one in STL's hash_fun.h,
- * only with *x replaced with rfc_case_insensitive_map[*x].
+ * only with *x replaced with national_case_insensitive_map[*x].
* This avoids a copy to use hash<const char*>
*/
register size_t t = 0;
for (std::string::const_iterator x = s.begin(); x != s.end(); ++x) /* ++x not x++, as its faster */
- t = 5 * t + rfc_case_insensitive_map[(unsigned char)*x];
+ t = 5 * t + national_case_insensitive_map[(unsigned char)*x];
return t;
}
@@ -91,7 +91,7 @@ size_t nspace::hash_compare<irc::string, std::less<irc::string> >::operator()(co
{
register size_t t = 0;
for (irc::string::const_iterator x = s.begin(); x != s.end(); ++x) /* ++x not x++, as its faster */
- t = 5 * t + rfc_case_insensitive_map[(unsigned char)*x];
+ t = 5 * t + national_case_insensitive_map[(unsigned char)*x];
return t;
}
@@ -100,9 +100,9 @@ bool irc::StrHashComp::operator()(const std::string& s1, const std::string& s2)
const unsigned char* n1 = (const unsigned char*)s1.c_str();
const unsigned char* n2 = (const unsigned char*)s2.c_str();
for (; *n1 && *n2; n1++, n2++)
- if (rfc_case_insensitive_map[*n1] != rfc_case_insensitive_map[*n2])
+ if (national_case_insensitive_map[*n1] != national_case_insensitive_map[*n2])
return false;
- return (rfc_case_insensitive_map[*n1] == rfc_case_insensitive_map[*n2]);
+ return (national_case_insensitive_map[*n1] == national_case_insensitive_map[*n2]);
}
/******************************************************
@@ -112,33 +112,33 @@ bool irc::StrHashComp::operator()(const std::string& s1, const std::string& s2)
* std::string which is not only case-insensitive but
* can also do scandanavian comparisons, e.g. { = [, etc.
*
- * This class depends on the const array 'rfc_case_insensitive_map'.
+ * This class depends on the const array 'national_case_insensitive_map'.
*
******************************************************/
bool irc::irc_char_traits::eq(char c1st, char c2nd)
{
- return rfc_case_insensitive_map[(unsigned char)c1st] == rfc_case_insensitive_map[(unsigned char)c2nd];
+ return national_case_insensitive_map[(unsigned char)c1st] == national_case_insensitive_map[(unsigned char)c2nd];
}
bool irc::irc_char_traits::ne(char c1st, char c2nd)
{
- return rfc_case_insensitive_map[(unsigned char)c1st] != rfc_case_insensitive_map[(unsigned char)c2nd];
+ return national_case_insensitive_map[(unsigned char)c1st] != national_case_insensitive_map[(unsigned char)c2nd];
}
bool irc::irc_char_traits::lt(char c1st, char c2nd)
{
- return rfc_case_insensitive_map[(unsigned char)c1st] < rfc_case_insensitive_map[(unsigned char)c2nd];
+ return national_case_insensitive_map[(unsigned char)c1st] < national_case_insensitive_map[(unsigned char)c2nd];
}
int irc::irc_char_traits::compare(const char* str1, const char* str2, size_t n)
{
for(unsigned int i = 0; i < n; i++)
{
- if(rfc_case_insensitive_map[(unsigned char)*str1] > rfc_case_insensitive_map[(unsigned char)*str2])
+ if(national_case_insensitive_map[(unsigned char)*str1] > national_case_insensitive_map[(unsigned char)*str2])
return 1;
- if(rfc_case_insensitive_map[(unsigned char)*str1] < rfc_case_insensitive_map[(unsigned char)*str2])
+ if(national_case_insensitive_map[(unsigned char)*str1] < national_case_insensitive_map[(unsigned char)*str2])
return -1;
if(*str1 == 0 || *str2 == 0)
@@ -152,7 +152,7 @@ int irc::irc_char_traits::compare(const char* str1, const char* str2, size_t n)
const char* irc::irc_char_traits::find(const char* s1, int n, char c)
{
- while(n-- > 0 && rfc_case_insensitive_map[(unsigned char)*s1] != rfc_case_insensitive_map[(unsigned char)c])
+ while(n-- > 0 && national_case_insensitive_map[(unsigned char)*s1] != national_case_insensitive_map[(unsigned char)c])
s1++;
return s1;
}