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.cpp29
1 files changed, 7 insertions, 22 deletions
diff --git a/src/lib/netlist/plib/putil.cpp b/src/lib/netlist/plib/putil.cpp
index b62cbf60865..fd5ab040cca 100644
--- a/src/lib/netlist/plib/putil.cpp
+++ b/src/lib/netlist/plib/putil.cpp
@@ -6,8 +6,8 @@
#include "ptypes.h"
#include <algorithm>
-#include <cstdlib>
-#include <cstring>
+//#include <cstdlib>
+//#include <cstring>
#include <initializer_list>
namespace plib
@@ -137,30 +137,15 @@ namespace plib
int penum_base::from_string_int(const char *str, const char *x)
{
int cnt = 0;
- const char *cur = str;
- std::size_t lx = strlen(x);
- while (*str)
+ for (auto s : psplit(str, ",", false))
{
- if (*str == ',')
- {
- std::ptrdiff_t l = str-cur;
- if (static_cast<std::size_t>(l) == lx)
- if (strncmp(cur, x, lx) == 0)
- return cnt;
- }
- else if (*str == ' ')
- {
- cur = str + 1;
- cnt++;
- }
- str++;
- }
- std::ptrdiff_t l = str-cur;
- if (static_cast<std::size_t>(l) == lx)
- if (strncmp(cur, x, lx) == 0)
+ if (s == x)
return cnt;
+ cnt++;
+ }
return -1;
}
+
std::string penum_base::nthstr(int n, const char *str)
{
return psplit(str, ",", false)[static_cast<std::size_t>(n)];