diff options
author | 2019-09-08 22:13:02 +1000 | |
---|---|---|
committer | 2019-09-08 22:13:02 +1000 | |
commit | fde41f3faddc576c28363dddfe8971cba3b6a5cc (patch) | |
tree | f1ebe93819ec40348148375b77d0441ba4ff3451 /src/emu/render.cpp | |
parent | 68d38ecac6c351f24269bf6d2287e961cc5b33a6 (diff) |
render.cpp: print a warning and continue on encountering malformed XML in a layout file (nw)
Diffstat (limited to 'src/emu/render.cpp')
-rw-r--r-- | src/emu/render.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/emu/render.cpp b/src/emu/render.cpp index e896c3748f1..415906b3809 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -2057,7 +2057,27 @@ bool render_target::load_layout_file(const char *dirname, const char *filename) return false; // read the file - util::xml::file::ptr rootnode(util::xml::file::read(layoutfile, nullptr)); + util::xml::parse_options parseopt; + util::xml::parse_error parseerr; + parseopt.error = &parseerr; + util::xml::file::ptr rootnode(util::xml::file::read(layoutfile, &parseopt)); + if (!rootnode) + { + if (parseerr.error_message) + { + osd_printf_warning( + "Error parsing XML file '%s' at line %d column %d: %s, ignoring\n", + filename, + parseerr.error_line, + parseerr.error_column, + parseerr.error_message); + } + else + { + osd_printf_warning("Error parsing XML file '%s', ignorning\n", filename); + } + return false; + } // if we didn't get a properly-formatted XML file, record a warning and exit if (!load_layout_file(m_manager.machine().root_device(), dirname, *rootnode)) |