From 3536ccf4ea73a0157ef01ae42c72e5448543eb39 Mon Sep 17 00:00:00 2001 From: H.G.Muller Date: Sat, 21 Feb 2015 20:02:06 +0100 Subject: [PATCH] Fix parsing of illegal drops from PGN These were parsed as if the first two characters were the from-square. --- backend.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend.c b/backend.c index d637ab1..8aae7b4 100644 --- a/backend.c +++ b/backend.c @@ -12075,8 +12075,13 @@ LoadGameOneMove (ChessMove readAhead) if (appData.debugMode) fprintf(debugFP, "Parsed %s into IllegalMove %s\n", yy_text, currentMoveString); - fromX = currentMoveString[0] - AAA; - fromY = currentMoveString[1] - ONE; + if(currentMoveString[1] == '@') { + fromX = CharToPiece(WhiteOnMove(currentMove) ? ToUpper(currentMoveString[0]) : ToLower(currentMoveString[0])); + fromY = DROP_RANK; + } else { + fromX = currentMoveString[0] - AAA; + fromY = currentMoveString[1] - ONE; + } toX = currentMoveString[2] - AAA; toY = currentMoveString[3] - ONE; promoChar = currentMoveString[4]; -- 1.7.0.4