Fix type-in of hit-and-run captures
authorH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 9 Feb 2016 09:25:40 +0000 (10:25 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 9 Feb 2016 09:25:40 +0000 (10:25 +0100)
Processing of the move in ParseOneMove (which basically duplicates
the code of LoadGameOneMove) was not yet adapted to ignore ';' as a
promotion character when it is internally used to append 'kill squares'
where locust capture should take place..

backend.c

index 7f06f2e..a4f7852 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -5556,6 +5556,7 @@ ParseOneMove (char *move, int moveNum, ChessMove *moveType, int *fromX, int *fro
         *toX = currentMoveString[2] - AAA;
         *toY = currentMoveString[3] - ONE;
        *promoChar = currentMoveString[4];
         *toX = currentMoveString[2] - AAA;
         *toY = currentMoveString[3] - ONE;
        *promoChar = currentMoveString[4];
+       if(*promoChar == ';') *promoChar = NULLCHAR;
         if (*fromX < BOARD_LEFT || *fromX >= BOARD_RGHT || *fromY < 0 || *fromY >= BOARD_HEIGHT ||
             *toX < BOARD_LEFT || *toX >= BOARD_RGHT || *toY < 0 || *toY >= BOARD_HEIGHT) {
     if (appData.debugMode) {
         if (*fromX < BOARD_LEFT || *fromX >= BOARD_RGHT || *fromY < 0 || *fromY >= BOARD_HEIGHT ||
             *toX < BOARD_LEFT || *toX >= BOARD_RGHT || *toY < 0 || *toY >= BOARD_HEIGHT) {
     if (appData.debugMode) {