diff options
| author | Simon Tatham <anakin@pobox.com> | 2009-12-20 10:01:57 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2009-12-20 10:01:57 +0000 |
| commit | 2bdabe31cf42b34f8d7bb6015c383482cfb5d068 (patch) | |
| tree | 3ad1cc865a62b3700838a27077b862f262138d16 | |
| parent | 8628a0630c16bc01c1370a6cb15412dd27c33332 (diff) | |
| download | puzzles-2bdabe31cf42b34f8d7bb6015c383482cfb5d068.zip puzzles-2bdabe31cf42b34f8d7bb6015c383482cfb5d068.tar.gz puzzles-2bdabe31cf42b34f8d7bb6015c383482cfb5d068.tar.bz2 puzzles-2bdabe31cf42b34f8d7bb6015c383482cfb5d068.tar.xz | |
Jonas Koelker points out that the backspace key didn't work in GTK
Guess, because Guess expected ^H whereas GTK generated ^?. Other
puzzles that use Backspace do it by being prepared to see either,
which seems wasteful. Now the midend normalises both into ^H, so
front ends can generate whichever they like while puzzles can
safely just look for ^H.
[originally from svn r8786]
| -rw-r--r-- | filling.c | 1 | ||||
| -rw-r--r-- | midend.c | 9 | ||||
| -rw-r--r-- | solo.c | 4 | ||||
| -rw-r--r-- | unequal.c | 2 |
4 files changed, 12 insertions, 4 deletions
@@ -1097,7 +1097,6 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, case '\r': case '\n': case '\b': - case '\177': button = 0; break; default: @@ -753,6 +753,15 @@ int midend_process_key(midend *me, int x, int y, int button) button = CURSOR_SELECT2; /* + * Normalise both backspace characters (8 and 127) to \b. Easier + * to do this once, here, than to require all front ends to + * carefully generate the same one - now each front end can + * generate whichever is easiest. + */ + if (button == '\177') + button = '\b'; + + /* * Now send on the event we originally received. */ ret = ret && midend_really_process_key(me, x, y, button); @@ -4551,13 +4551,13 @@ static char *interpret_move(game_state *state, game_ui *ui, game_drawstate *ds, ((button >= '0' && button <= '9' && button - '0' <= cr) || (button >= 'a' && button <= 'z' && button - 'a' + 10 <= cr) || (button >= 'A' && button <= 'Z' && button - 'A' + 10 <= cr) || - button == CURSOR_SELECT2 || button == '\010' || button == '\177')) { + button == CURSOR_SELECT2 || button == '\b')) { int n = button - '0'; if (button >= 'A' && button <= 'Z') n = button - 'A' + 10; if (button >= 'a' && button <= 'z') n = button - 'a' + 10; - if (button == CURSOR_SELECT2 || button == '\010' || button == '\177') + if (button == CURSOR_SELECT2 || button == '\b') n = 0; /* @@ -392,7 +392,7 @@ static char n2c(digit n, int order) { static int c2n(int c, int order) { if (c < 0 || c > 0xff) return -1; - if (c == ' ' || c == '\010' || c == '\177') + if (c == ' ' || c == '\b') return 0; if (order < 10) { if (c >= '1' && c <= '9') |