mirror of
https://github.com/holub/mame
synced 2025-10-06 09:00:04 +03:00
Merge branch 'master' of https://github.com/mamedev/mame
This commit is contained in:
commit
57d3501c82
@ -702,7 +702,7 @@ namespace netlist
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
void process(const T mask, netlist_sig_t sig);
|
void process(const T mask, netlist_sig_t sig);
|
||||||
};
|
};
|
||||||
} // detail
|
} // namespace detail
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// analog_t
|
// analog_t
|
||||||
|
@ -288,11 +288,6 @@ void setup_t::register_term(detail::core_terminal_t &term)
|
|||||||
log().debug("{1} {2}\n", termtype_as_str(term), term.name());
|
log().debug("{1} {2}\n", termtype_as_str(term), term.name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void setup_t::remove_connections(const pstring &pin)
|
void setup_t::remove_connections(const pstring &pin)
|
||||||
{
|
{
|
||||||
pstring pinfn = build_fqn(pin);
|
pstring pinfn = build_fqn(pin);
|
||||||
|
@ -23,72 +23,80 @@ pfmt &pfmt::format_element(const char *l, const unsigned cfmt_spec, ...)
|
|||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
// NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg)
|
||||||
va_start(ap, cfmt_spec);
|
|
||||||
pstring fmt("%");
|
|
||||||
std::array<char, 2048> buf;
|
std::array<char, 2048> buf;
|
||||||
std::size_t sl;
|
std::size_t sl;
|
||||||
|
bool found_abs = false;
|
||||||
buf[0] = 0;
|
|
||||||
|
|
||||||
m_arg++;
|
m_arg++;
|
||||||
|
|
||||||
pstring search("{");
|
do {
|
||||||
search += plib::to_string(m_arg);
|
pstring fmt("%");
|
||||||
sl = search.size();
|
va_start(ap, cfmt_spec);
|
||||||
|
found_abs = false;
|
||||||
|
buf[0] = 0;
|
||||||
|
pstring search("{");
|
||||||
|
search += plib::to_string(m_arg);
|
||||||
|
sl = search.size();
|
||||||
|
|
||||||
auto p = m_str.find(search + ":");
|
auto p = m_str.find(search + ":");
|
||||||
sl++; // ":"
|
sl++; // ":"
|
||||||
if (p == pstring::npos) // no further specifiers
|
if (p == pstring::npos) // no further specifiers
|
||||||
{
|
|
||||||
p = m_str.find(search + "}");
|
|
||||||
if (p == pstring::npos) // not found try default
|
|
||||||
{
|
{
|
||||||
sl = 2;
|
p = m_str.find(search + "}");
|
||||||
p = m_str.find("{}");
|
if (p == pstring::npos) // not found try default
|
||||||
}
|
|
||||||
if (p == pstring::npos)
|
|
||||||
{
|
|
||||||
sl=1;
|
|
||||||
p = m_str.find("{");
|
|
||||||
if (p != pstring:: npos)
|
|
||||||
{
|
{
|
||||||
auto p1 = m_str.find("}", p);
|
sl = 2;
|
||||||
if (p1 != pstring::npos)
|
p = m_str.find("{}");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
// found absolute positional place holder
|
||||||
|
found_abs = true;
|
||||||
|
if (p == pstring::npos)
|
||||||
|
{
|
||||||
|
sl=2;
|
||||||
|
p = m_str.find("{:");
|
||||||
|
if (p != pstring:: npos)
|
||||||
{
|
{
|
||||||
sl = p1 - p + 1;
|
auto p1 = m_str.find("}", p);
|
||||||
fmt += m_str.substr(p+1, p1 - p - 1);
|
if (p1 != pstring::npos)
|
||||||
|
{
|
||||||
|
sl = p1 - p + 1;
|
||||||
|
fmt += m_str.substr(p+1, p1 - p - 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
auto p1 = m_str.find("}", p);
|
|
||||||
if (p1 != pstring::npos)
|
|
||||||
{
|
|
||||||
sl = p1 - p + 1;
|
|
||||||
fmt += ((m_arg>=10) ? m_str.substr(p+4, p1 - p - 4) : m_str.substr(p+3, p1 - p - 3));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
pstring::value_type pend = fmt.at(fmt.size() - 1);
|
|
||||||
if (pstring("duxo").find(cfmt_spec) != pstring::npos)
|
|
||||||
{
|
|
||||||
if (pstring("duxo").find(pend) == pstring::npos)
|
|
||||||
fmt += (pstring(l) + static_cast<pstring::value_type>(cfmt_spec));
|
|
||||||
else
|
else
|
||||||
fmt = plib::left(fmt, fmt.size() - 1) + pstring(l) + plib::right(fmt, 1);
|
{
|
||||||
}
|
// found absolute positional place holder
|
||||||
else if (pstring("fge").find(cfmt_spec) != pstring::npos)
|
auto p1 = m_str.find("}", p);
|
||||||
{
|
if (p1 != pstring::npos)
|
||||||
if (pstring("fge").find(pend) == pstring::npos)
|
{
|
||||||
|
sl = p1 - p + 1;
|
||||||
|
fmt += ((m_arg>=10) ? m_str.substr(p+4, p1 - p - 4) : m_str.substr(p+3, p1 - p - 3));
|
||||||
|
found_abs = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pstring::value_type pend = fmt.at(fmt.size() - 1);
|
||||||
|
if (pstring("duxo").find(cfmt_spec) != pstring::npos)
|
||||||
|
{
|
||||||
|
if (pstring("duxo").find(pend) == pstring::npos)
|
||||||
|
fmt += (pstring(l) + static_cast<pstring::value_type>(cfmt_spec));
|
||||||
|
else
|
||||||
|
fmt = plib::left(fmt, fmt.size() - 1) + pstring(l) + plib::right(fmt, 1);
|
||||||
|
}
|
||||||
|
else if (pstring("fge").find(cfmt_spec) != pstring::npos)
|
||||||
|
{
|
||||||
|
if (pstring("fge").find(pend) == pstring::npos)
|
||||||
|
fmt += cfmt_spec;
|
||||||
|
}
|
||||||
|
else
|
||||||
fmt += cfmt_spec;
|
fmt += cfmt_spec;
|
||||||
}
|
std::vsnprintf(buf.data(), buf.size(), fmt.c_str(), ap);
|
||||||
else
|
if (p != pstring::npos)
|
||||||
fmt += cfmt_spec;
|
m_str = m_str.substr(0, p) + pstring(buf.data()) + m_str.substr(p + sl);
|
||||||
std::vsnprintf(buf.data(), buf.size(), fmt.c_str(), ap);
|
va_end(ap);
|
||||||
if (p != pstring::npos)
|
} while (found_abs);
|
||||||
m_str = m_str.substr(0, p) + pstring(buf.data()) + m_str.substr(p + sl);
|
|
||||||
va_end(ap);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user