aboutsummaryrefslogtreecommitdiff
path: root/midend.c
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2017-10-01 12:52:12 +0100
committerSimon Tatham <anakin@pobox.com>2017-10-01 15:18:14 +0100
commiteeb2db283de9115f7256fa4cc49597d63e06b0ab (patch)
tree48de59795d6a338ef56c5a0f1e1247478c6ad6b9 /midend.c
parentedcf839d4c557c3993d681665829390697353344 (diff)
downloadpuzzles-eeb2db283de9115f7256fa4cc49597d63e06b0ab.zip
puzzles-eeb2db283de9115f7256fa4cc49597d63e06b0ab.tar.gz
puzzles-eeb2db283de9115f7256fa4cc49597d63e06b0ab.tar.bz2
puzzles-eeb2db283de9115f7256fa4cc49597d63e06b0ab.tar.xz
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.
Diffstat (limited to 'midend.c')
-rw-r--r--midend.c3
1 files changed, 2 insertions, 1 deletions
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 */