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.
This commit is contained in:
Simon Tatham
2018-11-13 21:42:28 +00:00
parent 33b55db48e
commit 08915945e6
2 changed files with 8 additions and 8 deletions

12
latin.c
View File

@ -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++)

View File

@ -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);