summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/prg/nltool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/prg/nltool.cpp')
-rw-r--r--src/lib/netlist/prg/nltool.cpp18
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());