int strcasecmp(const std::string &, const std::string &);
std::string tolower(const std::string &);
std::string toupper(const std::string &);
-std::vector<std::string> split(const std::string &, const std::string & =" \t\r\n", bool =false);
-std::vector<std::string> split(const std::string &, char, bool =false);
+
+std::vector<std::string> split_fields(const std::string &, const std::string &, int =-1);
+std::vector<std::string> split_fields(const std::string &, char, int =-1);
+std::vector<std::string> split_long(const std::string &, const std::string &, int =-1);
+std::vector<std::string> split(const std::string &, const std::string & =" \t\r\n", int =-1);
+std::vector<std::string> split(const std::string &, char, int =-1);
+
template<typename T>
std::string join(const T &, const std::string & =" ");
std::string strip(const std::string &);