From: simon Date: Sun, 20 Dec 2009 10:01:57 +0000 (+0000) Subject: Jonas Koelker points out that the backspace key didn't work in GTK X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/commitdiff_plain/7b97f2181bd0d6f3e50e2fabe6e4e0c8c262db95 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. git-svn-id: svn://svn.tartarus.org/sgt/puzzles@8786 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/filling.c b/filling.c index 3fcc3b1..896fe41 100644 --- a/filling.c +++ b/filling.c @@ -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: diff --git a/midend.c b/midend.c index 323ac97..1ba0fa3 100644 --- a/midend.c +++ b/midend.c @@ -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); diff --git a/solo.c b/solo.c index 0970eda..3d3fa83 100644 --- a/solo.c +++ b/solo.c @@ -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; /* diff --git a/unequal.c b/unequal.c index 26fcd41..35837c0 100644 --- a/unequal.c +++ b/unequal.c @@ -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')