diff options
Diffstat (limited to 'src/lib/netlist/prg/nltool.cpp')
-rw-r--r-- | src/lib/netlist/prg/nltool.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp index 0f3d29d00d8..57b6dc6f179 100644 --- a/src/lib/netlist/prg/nltool.cpp +++ b/src/lib/netlist/prg/nltool.cpp @@ -363,6 +363,7 @@ static void listdevices(tool_options_t &opts) pstring out = plib::pfmt("{1} {2}(<id>")(f->classname(),"-20")(f->name()); std::vector<pstring> terms; + f->macro_actions(nt.setup().netlist(), f->name() + "_lc"); auto d = f->Create(nt.setup().netlist(), f->name() + "_lc"); // get the list of terminals ... @@ -395,18 +396,13 @@ static void listdevices(tool_options_t &opts) } } - if (f->param_desc().startsWith("+")) + out += "," + f->param_desc(); + for (auto p : plib::pstring_vector_t(f->param_desc(),",") ) { - out += "," + f->param_desc().substr(1); - terms.clear(); - } - else if (f->param_desc() == "-") - { - /* no params at all */ - } - else - { - out += "," + f->param_desc(); + if (p.startsWith("+")) + { + plib::container::remove(terms, p.substr(1)); + } } out += ")"; printf("%s\n", out.c_str()); |