X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=gnushogi%2Fcursesdsp.c;h=bf5452ffdf3716630ea532427c0931b9a59f3a1b;hb=f9dcc468f334f5fe3e16822715539ea94444096d;hp=16125a0fc72e3206760d3b2a4e571365a25da3f6;hpb=7f3af18fa68d730123d6c199ec2b8b28f487acec;p=gnushogi.git diff --git a/gnushogi/cursesdsp.c b/gnushogi/cursesdsp.c index 16125a0..bf5452f 100644 --- a/gnushogi/cursesdsp.c +++ b/gnushogi/cursesdsp.c @@ -485,6 +485,7 @@ Curses_EditBoard(void) ClearEoln(); FLUSH_SCANW("%s", s); found = 0; + ClearMessage(); if (s[0] == '.') break; @@ -520,24 +521,26 @@ Curses_EditBoard(void) break; } } - + if (!found) + AlwaysShowMessage("Invalid piece type '%c'", s[0]); continue; } c = COL_NUM(s[1]); r = ROW_NUM(s[2]); - if ((c < 0) || (c >= NO_COLS) || (r < 0) || (r >= NO_ROWS)) + if ((c < 0) || (c >= NO_COLS) || (r < 0) || (r >= NO_ROWS)) { + AlwaysShowMessage("Out-of-board '%c%c'", s[1], s[2]); continue; + } sq = locn(r, c); - color[sq] = a; - board[sq] = no_piece; for (i = NO_PIECES; i > no_piece; i--) { if ((s[0] == pxx[i]) || (s[0] == qxx[i])) { + color[sq] = a; if (s[3] == '+') board[sq] = promoted[i]; else @@ -548,9 +551,8 @@ Curses_EditBoard(void) } } - - if (found == 0) - color[sq] = neutral; + if (!found) + AlwaysShowMessage("Invalid piece type '%c'", s[0]); DrawPiece(sq); }