From 2a5d12be545aa519562ec77d85f972d2fa5016cc Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 10 Jul 2011 16:07:30 +0200 Subject: [PATCH] Change empdump to export even when game state looks bad Just print a warning then. Gives deities another tool to fix up a bad game state. --- src/util/empdump.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/util/empdump.c b/src/util/empdump.c index d2695089b..4f9fba544 100644 --- a/src/util/empdump.c +++ b/src/util/empdump.c @@ -27,7 +27,7 @@ * empdump.c: Export/import Empire game state * * Known contributors to this file: - * Markus Armbruster, 2008-2010 + * Markus Armbruster, 2008-2011 */ #include @@ -56,7 +56,7 @@ main(int argc, char *argv[]) int export = 0; int private = 0; int human = 1; - int opt, i, lineno, type; + int opt, i, lineno, type, verified; FILE *impf = NULL; int dirty[EF_MAX]; @@ -128,6 +128,8 @@ main(int argc, char *argv[]) argv[0], gamedir, strerror(errno)); exit(1); } + if (ef_verify_config() < 0) + exit(1); global_init(); for (i = 0; i < EF_MAX; i++) { @@ -150,10 +152,7 @@ main(int argc, char *argv[]) exit(1); } - if (ef_verify_config() < 0) - exit(1); - if (ef_verify_state(0) < 0) - exit(1); + verified = ef_verify_state(0) >= 0; /* export to stdout */ if (export) { @@ -169,6 +168,13 @@ main(int argc, char *argv[]) } } + if (!verified && export) + fprintf(stderr, + "%s: warning: export has errors, not importable as is\n", + argv[0]); + if (!verified && import) + exit(1); + /* write out imported data */ for (i = 0; i < EF_MAX; i++) { if (!EF_IS_GAME_STATE(i)) -- 2.43.0