Skip to content
Snippets Groups Projects
Commit d9b7c5ab authored by Andy Cedilnik's avatar Andy Cedilnik
Browse files

ENH: Add split that splits on arbitrary separator

parent c3785989
No related branches found
No related tags found
No related merge requests found
......@@ -2466,6 +2466,31 @@ bool SystemTools::ComparePath(const char* c1, const char* c2)
#endif
}
//----------------------------------------------------------------------------
bool SystemTools::Split(const char* str, kwsys_stl::vector<kwsys_stl::string>& lines, char separator)
{
kwsys_stl::string data(str);
kwsys_stl::string::size_type lpos = 0;
while(lpos < data.length())
{
kwsys_stl::string::size_type rpos = data.find_first_of(separator, lpos);
if(rpos == kwsys_stl::string::npos)
{
// Line ends at end of string without a newline.
lines.push_back(data.substr(lpos));
return false;
}
else
{
// Line ends in a "\n", remove the character.
lines.push_back(data.substr(lpos, rpos-lpos));
}
lpos = rpos+1;
}
return true;
}
//----------------------------------------------------------------------------
bool SystemTools::Split(const char* str, kwsys_stl::vector<kwsys_stl::string>& lines)
{
kwsys_stl::string data(str);
......
......@@ -189,6 +189,7 @@ public:
* Return false only if the last line stored had no newline
*/
static bool Split(const char* s, kwsys_stl::vector<kwsys_stl::string>& l);
static bool Split(const char* s, kwsys_stl::vector<kwsys_stl::string>& l, char separator);
/**
* Return string with space added between capitalized words
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment