From eeb2db283de9115f7256fa4cc49597d63e06b0ab Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sun, 1 Oct 2017 12:52:12 +0100 Subject: New name UI_UPDATE for interpret_move's return "". Now midend.c directly tests the returned pointer for equality to this value, instead of checking whether it's the empty string. A minor effect of this is that games may now return a dynamically allocated empty string from interpret_move() and treat it as just another legal move description. But I don't expect anyone to be perverse enough to actually do that! The main purpose is that it avoids returning a string literal from a function whose return type is a pointer to _non-const_ char, i.e. we are now one step closer to being able to make this code base clean under -Wwrite-strings. --- midend.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'midend.c') diff --git a/midend.c b/midend.c index 93334f6..913b322 100644 --- a/midend.c +++ b/midend.c @@ -782,7 +782,7 @@ static int midend_really_process_key(midend *me, int x, int y, int button) } else goto done; } else { - if (!*movestr) + if (movestr == UI_UPDATE) s = me->states[me->statepos-1].state; else { s = me->ourgame->execute_move(me->states[me->statepos-1].state, @@ -1662,6 +1662,7 @@ char *midend_solve(midend *me) movestr = me->ourgame->solve(me->states[0].state, me->states[me->statepos-1].state, me->aux_info, &msg); + assert(movestr != UI_UPDATE); if (!movestr) { if (!msg) msg = "Solve operation failed"; /* _shouldn't_ happen, but can */ -- cgit v1.1