From f8eb29b9bd92a585995258504c8f56b6679c9f87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miodrag=20Milanovi=C4=87?= Date: Mon, 28 Dec 2015 15:56:35 +0100 Subject: [PATCH] =?UTF-8?q?Revert=20"Allow=20mame=20-validate=20-verbose?= =?UTF-8?q?=20to=20display=20more=20messages=20(and=20make=20erro=E2=80=A6?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/emu/clifront.cpp | 6 ---- src/emu/validity.cpp | 77 ++++++++++++++++---------------------------- src/emu/validity.h | 2 -- 3 files changed, 27 insertions(+), 58 deletions(-) diff --git a/src/emu/clifront.cpp b/src/emu/clifront.cpp index a3535b2d07c..331aa996121 100644 --- a/src/emu/clifront.cpp +++ b/src/emu/clifront.cpp @@ -30,8 +30,6 @@ #include #include -extern bool g_print_verbose; - // media_identifier class identifies media by hash via a search in @@ -1613,10 +1611,6 @@ void cli_frontend::execute_commands(const char *exename) // validate? if (strcmp(m_options.command(), CLICOMMAND_VALIDATE) == 0) { - // hack: enable verbose output if requested - if (m_options.verbose()) - g_print_verbose = true; - validity_checker valid(m_options); bool result = valid.check_all(); if (!result) diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index 38752c39790..345b47d010c 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -125,7 +125,6 @@ validity_checker::validity_checker(emu_options &options) : m_drivlist(options), m_errors(0), m_warnings(0), - m_verbose(false), m_current_driver(nullptr), m_current_config(nullptr), m_current_device(nullptr), @@ -195,15 +194,19 @@ bool validity_checker::check_all() validate_inlines(); // if we had warnings or errors, output - if (m_errors > 0 || m_warnings > 0 || m_verbose) + if (m_errors > 0 || m_warnings > 0) { output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Core: %d errors, %d warnings\n", m_errors, m_warnings); if (m_errors > 0) - output_indented_errors(m_error_text, "Errors"); + { + strreplace(m_error_text, "\n", "\n "); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Errors:\n %s", m_error_text.c_str()); + } if (m_warnings > 0) - output_indented_errors(m_warning_text, "Warnings"); - else if (m_verbose) - output_indented_errors(m_warning_text, "Messages"); + { + strreplace(m_warning_text, "\n", "\n "); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Warnings:\n %s", m_warning_text.c_str()); + } output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n"); } @@ -240,7 +243,6 @@ void validity_checker::validate_begin() // reset internal state m_errors = 0; m_warnings = 0; - m_verbose = false; m_already_checked.clear(); } @@ -275,7 +277,6 @@ void validity_checker::validate_one(const game_driver &driver) int start_warnings = m_warnings; m_error_text.clear(); m_warning_text.clear(); - m_verbose = false; // wrap in try/except to catch fatalerrors try @@ -294,16 +295,20 @@ void validity_checker::validate_one(const game_driver &driver) } // if we had warnings or errors, output - if (m_errors > start_errors || m_warnings > start_warnings || m_verbose) + if (m_errors > start_errors || m_warnings > start_warnings) { std::string tempstr; output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Driver %s (file %s): %d errors, %d warnings\n", driver.name, core_filename_extract_base(tempstr, driver.source_file).c_str(), m_errors - start_errors, m_warnings - start_warnings); if (m_errors > start_errors) - output_indented_errors(m_error_text, "Errors"); + { + strreplace(m_error_text, "\n", "\n "); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Errors:\n %s", m_error_text.c_str()); + } if (m_warnings > start_warnings) - output_indented_errors(m_warning_text, "Warnings"); - else if (m_verbose) - output_indented_errors(m_warning_text, "Messages"); + { + strreplace(m_warning_text, "\n", "\n "); + output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "Warnings:\n %s", m_warning_text.c_str()); + } output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "\n"); } @@ -610,8 +615,8 @@ void validity_checker::validate_roms() device_iterator deviter(m_current_config->root_device()); for (device_t *device = deviter.first(); device != nullptr; device = deviter.next()) { - // track the current device - m_current_device = device; + // for non-root devices, track the current device + m_current_device = (device->owner() == nullptr) ? nullptr : device; // scan the ROM entries for this device const char *last_region_name = "???"; @@ -875,8 +880,8 @@ void validity_checker::validate_inputs() if (device->input_ports() == nullptr) continue; - // track the current device - m_current_device = device; + // for non-root devices, track the current device + m_current_device = (device == &m_current_config->root_device()) ? nullptr : device; // allocate the input ports ioport_list portlist; @@ -971,10 +976,6 @@ void validity_checker::validate_devices() device_iterator iter_find(m_current_config->root_device()); for (const device_t *device = iter_find.first(); device != nullptr; device = iter_find.next()) { - // track the current device - m_current_device = device; - - // try to find some objects device->findit(true); } @@ -982,8 +983,8 @@ void validity_checker::validate_devices() device_iterator iter(m_current_config->root_device()); for (const device_t *device = iter.first(); device != nullptr; device = iter.next()) { - // track the current device - m_current_device = device; + // for non-root devices, track the current device + m_current_device = (device == &m_current_config->root_device()) ? nullptr : device; // validate the device tag validate_tag(device->basetag()); @@ -1047,9 +1048,9 @@ void validity_checker::build_output_prefix(std::string &str) // start empty str.clear(); - // if we have a current (non-root) device, indicate that - if (m_current_device != nullptr && m_current_device->owner() != nullptr) - str.append(m_current_device->name()).append(" device '").append(m_current_device->tag()+1).append("': "); + // if we have a current device, indicate that + if (m_current_device != nullptr) + str.append(m_current_device->name()).append(" device '").append(m_current_device->tag()).append("': "); // if we have a current port, indicate that as well if (m_current_ioport != nullptr) @@ -1084,17 +1085,6 @@ void validity_checker::output_callback(osd_output_channel channel, const char *m // output the source(driver) device 'tag' build_output_prefix(output); - // generate the string and output to the original target - strcatvprintf(output, msg, args); - m_warning_text.append(output); - break; - case OSD_OUTPUT_CHANNEL_VERBOSE: - // note verbose messages - m_verbose = true; - - // output the source(driver) device 'tag' - build_output_prefix(output); - // generate the string and output to the original target strcatvprintf(output, msg, args); m_warning_text.append(output); @@ -1120,16 +1110,3 @@ void validity_checker::output_via_delegate(osd_output_channel channel, const cha this->chain_output(channel, format, argptr); va_end(argptr); } - -//------------------------------------------------- -// output_indented_errors - helper to output error -// and warning messages with header and indents -//------------------------------------------------- -void validity_checker::output_indented_errors(std::string &text, const char *header) -{ - // remove trailing newline - if (text[text.size()-1] == '\n') - text.erase(text.size()-1, 1); - strreplace(text, "\n", "\n "); - output_via_delegate(OSD_OUTPUT_CHANNEL_ERROR, "%s:\n %s\n", header, text.c_str()); -} diff --git a/src/emu/validity.h b/src/emu/validity.h index 148a68ab72c..fa38bb20f93 100644 --- a/src/emu/validity.h +++ b/src/emu/validity.h @@ -81,7 +81,6 @@ private: // output helpers void build_output_prefix(std::string &str); void output_via_delegate(osd_output_channel channel, const char *format, ...) ATTR_PRINTF(3,4); - void output_indented_errors(std::string &text, const char *header); // internal driver list driver_enumerator m_drivlist; @@ -89,7 +88,6 @@ private: // error tracking int m_errors; int m_warnings; - bool m_verbose; std::string m_error_text; std::string m_warning_text;