summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/putil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/putil.cpp')
-rw-r--r--src/lib/netlist/plib/putil.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/netlist/plib/putil.cpp b/src/lib/netlist/plib/putil.cpp
index 0d3a0ebca3f..92e0e6b3ab1 100644
--- a/src/lib/netlist/plib/putil.cpp
+++ b/src/lib/netlist/plib/putil.cpp
@@ -64,6 +64,36 @@ namespace plib
return ret;
}
+ std::vector<std::string> psplit_r(const std::string &stri,
+ const std::string &token,
+ const std::size_t maxsplit)
+ {
+ std::string str(stri);
+ std::vector<std::string> result;
+ std::size_t splits = 0;
+
+ while(str.size())
+ {
+ std::size_t index = str.rfind(token);
+ bool found = index!=std::string::npos;
+ if (found)
+ splits++;
+ if ((splits <= maxsplit || maxsplit == 0) && found)
+ {
+ result.push_back(str.substr(index+token.size()));
+ str = str.substr(0, index);
+ if (str.size()==0)
+ result.push_back(str);
+ }
+ else
+ {
+ result.push_back(str);
+ str = "";
+ }
+ }
+ return result;
+ }
+
std::vector<pstring> psplit(const pstring &str, const std::vector<pstring> &onstrl)
{
pstring col = "";