From: Markus Armbruster Date: Sun, 10 Jul 2011 14:07:30 +0000 (+0200) Subject: Change empdump to export even when game state looks bad X-Git-Tag: v4.3.28~13 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=2a5d12be545aa519562ec77d85f972d2fa5016cc 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. --- 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))