size_t CoreExport operator()(const std::string &s) const;
};
+ struct insensitive_swo
+ {
+ bool CoreExport operator()(const std::string& a, const std::string& b) const;
+ };
+
/** The irc_char_traits class is used for RFC-style comparison of strings.
* This class is used to implement irc::string, a case-insensitive, RFC-
* comparing string class.
* @return similar to strcmp, zero for equal, less than zero for str1
* being less and greater than zero for str1 being greater than str2.
*/
- static CoreExport int compare(const char* str1, const char* str2, size_t n);
+ static int compare(const char* str1, const char* str2, size_t n);
/** Find a char within a string up to position n.
* @param s1 String to find in
* @param c Character to search for
* @return Pointer to the first occurance of c in s1
*/
- static CoreExport const char* find(const char* s1, int n, char c);
+ static const char* find(const char* s1, int n, char c);
};
/** This typedef declares irc::string based upon irc_char_traits.
*/
typedef std::basic_string<char, irc_char_traits, std::allocator<char> > string;
- /** irc::stringjoiner joins string lists into a string, using
- * space as the separator.
- * This class can join a vector of std::string.
+ /** Joins the contents of a vector to a string.
+ * @param sequence Zero or more items to join.
+ * @separator The character to place between the items.
*/
- class CoreExport stringjoiner
- {
- private:
-
- /** Output string
- */
- std::string joined;
-
- public:
-
- /** Join all elements of a vector, in the resulting string
- * each element will be seperated by a single space character.
- * @param sequence Zero or more items to seperate
- */
- stringjoiner(const std::vector<std::string>& sequence);
-
- /** Get the joined sequence
- * @return A constant reference to the joined string
- */
- const std::string& GetJoined() const { return joined; }
- };
+ std::string CoreExport stringjoiner(const std::vector<std::string>& sequence, char separator = ' ');
/** irc::modestacker stacks mode sequences into a list.
* It can then reproduce this list, clamped to a maximum of MAXMODES