diff options
author | Vas Crabb <vas@vastheman.com> | 2019-08-25 20:09:31 +1000 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2019-08-25 20:09:31 +1000 |
commit | 80110e2b909fc2195b2e55fba67342ef7cdd6cb3 (patch) | |
tree | e8723eea22b75e2e903afe6aabca9b1b73e8d6d3 | |
parent | 5a800a366b75015ad5a5b4af44445efe9b706f92 (diff) | |
parent | 05aac20ab6e6a2a13cdd2ad10b66a725b3dbc238 (diff) |
Merge remote-tracking branch 'mainline/release0213' into mainline-master
-rw-r--r-- | src/frontend/mame/info.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/frontend/mame/info.cpp b/src/frontend/mame/info.cpp index 5be974239d9..b06453c0958 100644 --- a/src/frontend/mame/info.cpp +++ b/src/frontend/mame/info.cpp @@ -1855,21 +1855,22 @@ void output_images(std::ostream &out, device_t &device, const char *root_tag) if (loadable) { - const char *name = imagedev.instance_name().c_str(); - const char *shortname = imagedev.brief_instance_name().c_str(); + char const *const name = imagedev.instance_name().c_str(); + char const *const shortname = imagedev.brief_instance_name().c_str(); out << "\t\t\t<instance"; out << util::string_format(" name=\"%s\"", normalize_string(name)); out << util::string_format(" briefname=\"%s\"", normalize_string(shortname)); out << "/>\n"; - std::string extensions(imagedev.file_extensions()); - - char *ext = strtok((char *)extensions.c_str(), ","); - while (ext != nullptr) + char const *extensions(imagedev.file_extensions()); + while (extensions) { - out << util::string_format("\t\t\t<extension name=\"%s\"/>\n", normalize_string(ext)); - ext = strtok(nullptr, ","); + char const *end(extensions); + while (*end && (',' != *end)) + ++end; + out << util::string_format("\t\t\t<extension name=\"%s\"/>\n", normalize_string(std::string(extensions, end).c_str())); + extensions = *end ? (end + 1) : nullptr; } } out << "\t\t</device>\n"; |