diff options
author | R. Belmont <rb6502@users.noreply.github.com> | 2019-08-13 13:21:53 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-13 13:21:53 -0400 |
commit | deb05745b09136496381c10f448bcb7ee9dd4b33 (patch) | |
tree | 595363324d287d48e7e92aaf212b73b32e345980 /src | |
parent | cacaf871ffd842d2c73b9b5b2091e1f23e2fdc85 (diff) | |
parent | 9f0d29158f1f8439062b813659f58a7e7e0ddfa6 (diff) |
Merge pull request #5477 from npwoods/listxml_devices_sorted
Ensuring that devices emitted by -listxml are sorted
Diffstat (limited to 'src')
-rw-r--r-- | src/frontend/mame/info.cpp | 10 | ||||
-rw-r--r-- | src/frontend/mame/info.h | 8 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp index 18ee054769a..af16254a99a 100644 --- a/src/frontend/mame/info.cpp +++ b/src/frontend/mame/info.cpp @@ -1951,3 +1951,13 @@ const char *info_xml_creator::get_merge_name(driver_enumerator &drivlist, const return nullptr; } + + +//------------------------------------------------- +// device_type_compare::operator() +//------------------------------------------------- + +bool info_xml_creator::device_type_compare::operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const +{ + return strcmp(lhs->shortname(), rhs->shortname()) < 0; +} diff --git a/src/frontend/mame/info.h b/src/frontend/mame/info.h index 9fc50a6af98..610e576e7f3 100644 --- a/src/frontend/mame/info.h +++ b/src/frontend/mame/info.h @@ -39,7 +39,13 @@ public: void output(std::ostream &out, const std::function<bool(const char *shortname, bool &done)> &filter = { }, bool include_devices = true); private: - typedef std::unordered_set<std::add_pointer_t<device_type> > device_type_set; + class device_type_compare + { + public: + bool operator()(const std::add_pointer_t<device_type> &lhs, const std::add_pointer_t<device_type> &rhs) const; + }; + + typedef std::set<std::add_pointer_t<device_type>, device_type_compare> device_type_set; // internal helper void output_header(std::ostream &out); |