diff options
-rw-r--r-- | src/emu/clifront.c | 4 | ||||
-rw-r--r-- | src/emu/validity.c | 4 | ||||
-rw-r--r-- | src/emu/validity.h | 2 |
3 files changed, 7 insertions, 3 deletions
diff --git a/src/emu/clifront.c b/src/emu/clifront.c index f031a84ec0f..90f63bde35e 100644 --- a/src/emu/clifront.c +++ b/src/emu/clifront.c @@ -1550,7 +1550,9 @@ void cli_frontend::execute_commands(const char *exename) if (strcmp(m_options.command(), CLICOMMAND_VALIDATE) == 0) { validity_checker valid(m_options); - valid.check_all(); + bool result = valid.check_all(); + if (!result) + throw emu_fatalerror(MAMERR_FAILED_VALIDITY, "Validity check failed!\n"); return; } diff --git a/src/emu/validity.c b/src/emu/validity.c index fe4c14cfa8c..dc6ee7cf9c6 100644 --- a/src/emu/validity.c +++ b/src/emu/validity.c @@ -186,7 +186,7 @@ void validity_checker::check_shared_source(const game_driver &driver) // check_all - check all drivers //------------------------------------------------- -void validity_checker::check_all() +bool validity_checker::check_all() { // start by checking core stuff validate_begin(); @@ -218,6 +218,8 @@ void validity_checker::check_all() // cleanup validate_end(); + + return !(m_errors > 0 || m_warnings > 0); } diff --git a/src/emu/validity.h b/src/emu/validity.h index 64984433ecf..acc271a7cae 100644 --- a/src/emu/validity.h +++ b/src/emu/validity.h @@ -43,7 +43,7 @@ public: // operations void check_driver(const game_driver &driver); void check_shared_source(const game_driver &driver); - void check_all(); + bool check_all(); // helpers for devices void validate_tag(const char *tag); |