CLI: Refactored ::canonicalizeNames to be shorter and include EXT entities

This commit is contained in:
Paul Beckingham 2016-04-09 10:41:11 -04:00
parent 9f7030de8f
commit 76c5d13036

View file

@ -107,6 +107,7 @@ std::string A2::dump () const
{ {
if (tag == "BINARY") tags += "\033[1;37;44m" + tag + "\033[0m "; if (tag == "BINARY") tags += "\033[1;37;44m" + tag + "\033[0m ";
else if (tag == "CMD") tags += "\033[1;37;46m" + tag + "\033[0m "; else if (tag == "CMD") tags += "\033[1;37;46m" + tag + "\033[0m ";
else if (tag == "EXT") tags += "\033[1;37;42m" + tag + "\033[0m ";
else if (tag == "HINT") tags += "\033[1;37;43m" + tag + "\033[0m "; else if (tag == "HINT") tags += "\033[1;37;43m" + tag + "\033[0m ";
else tags += "\033[32m" + tag + "\033[0m "; else tags += "\033[32m" + tag + "\033[0m ";
} }
@ -332,38 +333,32 @@ void CLI::canonicalizeNames ()
for (auto& a : _args) for (auto& a : _args)
{ {
auto raw = a.attribute ("raw"); auto raw = a.attribute ("raw");
std::string canonical; std::string canonical = raw;
// Commands. // Commands.
if (! alreadyFoundArg && if (! alreadyFoundArg &&
exactMatch ("command", raw)) (exactMatch ("command", raw) ||
{ canonicalize (canonical, "command", raw)))
a.attribute ("canonical", raw);
a.tag ("CMD");
alreadyFoundArg = true;
continue;
}
else if (! alreadyFoundArg &&
canonicalize (canonical, "command", raw))
{ {
a.attribute ("canonical", canonical); a.attribute ("canonical", canonical);
a.tag ("CMD"); a.tag ("CMD");
alreadyFoundArg = true; alreadyFoundArg = true;
continue;
} }
// Commands. // Hints.
if (exactMatch ("hint", raw)) else if (exactMatch ("hint", raw) ||
{ canonicalize (canonical, "hint", raw))
a.attribute ("canonical", raw);
a.tag ("HINT");
continue;
}
else if (canonicalize (canonical, "hint", raw))
{ {
a.attribute ("canonical", canonical); a.attribute ("canonical", canonical);
a.tag ("HINT"); a.tag ("HINT");
continue; }
// Extensions.
else if (exactMatch ("extension", raw) ||
canonicalize (canonical, "extension", raw))
{
a.attribute ("canonical", canonical);
a.tag ("EXT");
} }
} }
} }