diff --git a/include/ircd/rfc1459.h b/include/ircd/rfc1459.h index 754003773..d04731b0d 100644 --- a/include/ircd/rfc1459.h +++ b/include/ircd/rfc1459.h @@ -71,6 +71,7 @@ using character::tolower; struct less { + bool operator()(const char *const &a, const char *const &b) const; bool operator()(const std::string &a, const std::string &b) const; bool operator()(const std::string *const &a, const std::string *const &b) const; }; @@ -124,6 +125,18 @@ const }); } +inline bool +less::operator()(const char *const &a, + const char *const &b) +const +{ + return std::lexicographical_compare(a, a + strlen(a), b, b + strlen(b), [] + (const char &a, const char &b) + { + return tolower(a) < tolower(b); + }); +} + inline const unsigned char & character::tolower(const unsigned char &c) {