From 08915945e64d2d3dfea7ec426228f814a6e65adf Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Tue, 13 Nov 2018 21:42:28 +0000 Subject: [PATCH] Adopt C99 bool in the shared Latin-square API. latin_check now returns bool, and latin_solver_diff_set takes a bool 'extreme' flag. Should be non-disruptive. --- latin.c | 12 ++++++------ latin.h | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/latin.c b/latin.c index 6e80545..3865ad1 100644 --- a/latin.c +++ b/latin.c @@ -650,7 +650,7 @@ int latin_solver_diff_simple(struct latin_solver *solver) int latin_solver_diff_set(struct latin_solver *solver, struct latin_solver_scratch *scratch, - int extreme) + bool extreme) { int x, y, n, ret, o = solver->o; #ifdef STANDALONE_SOLVER @@ -1244,12 +1244,12 @@ static int latin_check_cmp(void *v1, void *v2) #define ELT(sq,x,y) (sq[((y)*order)+(x)]) -/* returns non-zero if sq is not a latin square. */ -int latin_check(digit *sq, int order) +/* returns true if sq is not a latin square. */ +bool latin_check(digit *sq, int order) { tree234 *dict = newtree234(latin_check_cmp); int c, r; - int ret = 0; + bool ret = false; lcparams *lcp, lc, *aret; /* Use a tree234 as a simple hash table, go through the square @@ -1272,10 +1272,10 @@ int latin_check(digit *sq, int order) /* There should be precisely 'order' letters in the alphabet, * each occurring 'order' times (making the OxO tree) */ - if (count234(dict) != order) ret = 1; + if (count234(dict) != order) ret = true; else { for (c = 0; (lcp = index234(dict, c)) != NULL; c++) { - if (lcp->count != order) ret = 1; + if (lcp->count != order) ret = true; } } for (c = 0; (lcp = index234(dict, c)) != NULL; c++) diff --git a/latin.h b/latin.h index 747cfb6..3c9e8e8 100644 --- a/latin.h +++ b/latin.h @@ -82,7 +82,7 @@ int latin_solver_diff_simple(struct latin_solver *solver); * single-number elimination. */ int latin_solver_diff_set(struct latin_solver *solver, struct latin_solver_scratch *scratch, - int extreme); + bool extreme); typedef int (*usersolver_t)(struct latin_solver *solver, void *ctx); typedef void *(*ctxnew_t)(void *ctx); @@ -115,7 +115,7 @@ digit *latin_generate(int o, random_state *rs); /* The order of the latin rectangle is max(w,h). */ digit *latin_generate_rect(int w, int h, random_state *rs); -int latin_check(digit *sq, int order); /* !0 => not a latin square */ +bool latin_check(digit *sq, int order); /* true => not a latin square */ void latin_debug(digit *sq, int order);