diff options
| author | Simon Tatham <anakin@pobox.com> | 2023-03-28 20:31:21 +0100 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2023-03-28 20:51:26 +0100 |
| commit | 828c7da78561768a52a2c38d7c8c9bc1d14c3120 (patch) | |
| tree | 4035a73f0095ff53ff64771e0a46fd8bcbffed5a /hat.c | |
| parent | 22417efad6173417e414bee532a6dcd20324e87d (diff) | |
| download | puzzles-828c7da78561768a52a2c38d7c8c9bc1d14c3120.zip puzzles-828c7da78561768a52a2c38d7c8c9bc1d14c3120.tar.gz puzzles-828c7da78561768a52a2c38d7c8c9bc1d14c3120.tar.bz2 puzzles-828c7da78561768a52a2c38d7c8c9bc1d14c3120.tar.xz | |
hat-test: allow specifying tiling size on the command line.
I'm tired of recompiling every time I want a different size of test
patch.
Diffstat (limited to 'hat.c')
| -rw-r--r-- | hat.c | 27 |
1 files changed, 25 insertions, 2 deletions
@@ -1329,10 +1329,33 @@ int main(int argc, char **argv) HatCoords *coords[KE_NKEEP]; random_state *rs = random_new("12345", 5); int w = 10, h = 10; + int argpos = 0; size_t i; - if (argc > 1 && !strcmp(argv[1], "--test")) { - return unit_tests() ? 0 : 1; + while (--argc > 0) { + const char *arg = *++argv; + if (!strcmp(arg, "--help")) { + printf("usage: hat-test [<width>] [<height>]\n" + " or: hat-test --test\n"); + return 0; + } else if (!strcmp(arg, "--test")) { + return unit_tests() ? 0 : 1; + } else if (arg[0] == '-') { + fprintf(stderr, "unrecognised option '%s'\n", arg); + return 1; + } else { + switch (argpos++) { + case 0: + w = atoi(arg); + break; + case 1: + h = atoi(arg); + break; + default: + fprintf(stderr, "unexpected extra argument '%s'\n", arg); + return 1; + } + } } for (i = 0; i < lenof(coords); i++) |