Fix bugs in FRC castling rights
authorH.G. Muller <h.g.muller@hccnet.nl>
Wed, 2 Mar 2011 21:23:21 +0000 (22:23 +0100)
committerArun Persaud <apersaud@lbl.gov>
Fri, 4 Mar 2011 05:11:52 +0000 (21:11 -0800)
When parsing a castling move in FRC when no rights existed, the parser
returned 0 (= EndOfFile) rather than ImpossibleMove. The recognition of
the absence of rights was not adapted to the new encoding NoRights in
stead of -1.

parser.l

index 9515fea..8ceaa55 100644 (file)
--- a/parser.l
+++ b/parser.l
@@ -756,7 +756,7 @@ extern void CopyBoard P((Board to, Board from));
         {
           fprintf(debugFP, "Parser FRC long %d %d\n", ff, ft);
         };
-        if(ff == NoRights || ft == NoRights) return 0;
+        if(ff == NoRights || ft == NoRights) return ImpossibleMove;
     }
     sprintf(currentMoveString, "%c%c%c%c",ff+AAA,rf+ONE,ft+AAA,rt+ONE);
     if (appData.debugMode) {
@@ -810,7 +810,7 @@ extern void CopyBoard P((Board to, Board from));
     if (appData.debugMode) {
         fprintf(debugFP, "Parser FRC short %d %d\n", ff, ft);
     }
-        if(ff == NoRights || ft == NoRights) return 0;
+        if(ff == NoRights || ft == NoRights) return ImpossibleMove;
     }
     sprintf(currentMoveString, "%c%c%c%c",ff+AAA,rf+ONE,ft+AAA,rt+ONE);
     if (appData.debugMode) {