Fix multi-leg promotions
[xboard.git] / parser.c
index e325005..4c634ca 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -285,7 +285,7 @@ KifuMove (char **p)
 int
 ReadLine ()
 {   // Read one line from the input file, and append to the buffer
-    char c, *start = inPtr;
+    int c; char *start = inPtr;
     if(fromString) return 0; // parsing string, so the end is a hard end
     if(!inputFile) return 0;
     while((c = fgetc(inputFile)) != EOF) {
@@ -585,7 +585,7 @@ NextUnit (char **p)
                if(killX < 0) // [HGM] lion: do not overwrite kill-square suffix
                currentMoveString[4] = cl.promoChar;
 
-               if((cl.kind == WhiteCapturesEnPassant || cl.kind == BlackCapturesEnPassant) && (Match("ep", p) || Match("e.p.", p)));
+               if((cl.kind == WhiteCapturesEnPassant || cl.kind == BlackCapturesEnPassant) && !Match("ep", p)) Match("e.p.", p);
 
                return (int) cl.kind;
            }