diff options
author | Attila Molnar <attilamolnar@hush.com> | 2016-08-22 16:49:18 +0200 |
---|---|---|
committer | Attila Molnar <attilamolnar@hush.com> | 2016-08-22 16:49:18 +0200 |
commit | ecef36edcab5219ce1a759eb0d2d24e061b4e886 (patch) | |
tree | d3bfd54bc9b95a564b4261563bd39a784e530e81 /include/hashcomp.h | |
parent | 90ea1b01b78a94486b8142808c06aacff543ca64 (diff) |
Create irc::equals() from StrHashComp
Make StrHashComp a wrapper around it
Diffstat (limited to 'include/hashcomp.h')
-rw-r--r-- | include/hashcomp.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/hashcomp.h b/include/hashcomp.h index 168ecb289..aa204ace6 100644 --- a/include/hashcomp.h +++ b/include/hashcomp.h @@ -98,15 +98,27 @@ template<typename T> const T& SearchAndReplace(T& text, const T& pattern, const namespace irc { + /** Check if two IRC object (e.g. nick or channel) names are equal. + * This function uses national_case_insensitive_map to determine equality, which, by default does comparison + * according to RFC 1459, treating certain otherwise non-identical characters as identical. + * @param s1 First string to compare + * @param s2 Second string to compare + * @return True if the two names are equal, false otherwise + */ + CoreExport bool equals(const std::string& s1, const std::string& s2); + /** This class returns true if two strings match. * Case sensitivity is ignored, and the RFC 'character set' * is adhered to */ - struct CoreExport StrHashComp + struct StrHashComp { /** The operator () does the actual comparison in hash_map */ - bool operator()(const std::string& s1, const std::string& s2) const; + bool operator()(const std::string& s1, const std::string& s2) const + { + return equals(s1, s2); + } }; struct insensitive |