Reorder if statements in Unequal's interpret_move() so that presses
authorsimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 26 Jan 2009 22:28:17 +0000 (22:28 +0000)
committersimon <simon@cda61777-01e9-0310-a592-d414129be87e>
Mon, 26 Jan 2009 22:28:17 +0000 (22:28 +0000)
of 'h' and 'm' are treated as digits if a square is selected, and
only treated as special commands otherwise. This renders very large
games (just about) playable.

Idea from Ben Hutchings's collection of Debian patches, although I
had to redo his (trivial) patch myself since the code has changed
recently.

(Addendum after committing: hmm, I see Jacob already applied the
original version of the patch a while back. Looks as if the recent
keyboard control change reintroduced the problem. Still, re-fixed
now.)

git-svn-id: svn://svn.tartarus.org/sgt/puzzles@8433 cda61777-01e9-0310-a592-d414129be87e

unequal.c

index c9d2c60..26fcd41 100644 (file)
--- a/unequal.c
+++ b/unequal.c
@@ -1299,10 +1299,6 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
             return "";
         }
     }
-    if (button == 'H' || button == 'h')
-        return dupstr("H");
-    if (button == 'M' || button == 'm')
-        return dupstr("M");
 
     if (IS_CURSOR_MOVE(button)) {
         move_cursor(button, &ui->hx, &ui->hy, ds->order, ds->order, 0);
@@ -1340,6 +1336,12 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds,
 
         return dupstr(buf);
     }
+
+    if (button == 'H' || button == 'h')
+        return dupstr("H");
+    if (button == 'M' || button == 'm')
+        return dupstr("M");
+
     return NULL;
 }