From 828c7da78561768a52a2c38d7c8c9bc1d14c3120 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 28 Mar 2023 20:31:21 +0100 Subject: [PATCH] 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. --- hat.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/hat.c b/hat.c index 8872670..c45d16e 100644 --- a/hat.c +++ b/hat.c @@ -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 [] []\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++)