From 785de41a92dcd45a71c322bafa8af737bb1eb7aa Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 9 Aug 2023 11:42:51 +0100 Subject: [PATCH] Appropriately generate MOVE_NO_EFFECT from '\b' in Guess This is the case that I care about for KaiOS. --- guess.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/guess.c b/guess.c index 2796bca..5c5f941 100644 --- a/guess.c +++ b/guess.c @@ -943,9 +943,12 @@ static char *interpret_move(const game_state *from, game_ui *ui, ui->peg_cur++; ret = MOVE_UI_UPDATE; } else if (button == 'D' || button == 'd' || button == '\b') { - ui->display_cur = true; - set_peg(&from->params, ui, ui->peg_cur, 0); - ret = MOVE_UI_UPDATE; + if (!ui->display_cur || ui->curr_pegs->pegs[ui->peg_cur] != 0) { + ui->display_cur = true; + set_peg(&from->params, ui, ui->peg_cur, 0); + ret = MOVE_UI_UPDATE; + } else + ret = MOVE_NO_EFFECT; } else if (button == CURSOR_SELECT2) { if (ui->peg_cur == from->params.npegs) return NULL;