Fix Seirawan gating at Rook square in PGN castling moves
[xboard.git] / backend.c
index fd955fe..c531656 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -952,6 +952,7 @@ SaveEngineList ()
 void
 AddToEngineList (int i)
 {
+    if(addToList) {
        int len;
        char quote, buf[MSG_SIZ];
        char *q = firstChessProgramNames, *p = newEngineCommand;
@@ -975,6 +976,7 @@ AddToEngineList (int i)
        SaveEngineList();
        FloatToFront(&appData.recentEngineList, buf);
        ASSIGN(currentEngine[i], buf);
+    }
 }
 
 void
@@ -9055,7 +9057,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
                 GameEnds(cps->twoMachinesColor[0] == 'w' ? BlackWins : WhiteWins,
                            buf1, GE_XBOARD);
                return;
-           } else if(!appData.fischerCastling)
+           } else if(!appData.fischerCastling && toX != BOARD_WIDTH>>1)
            /* [HGM] Kludge to handle engines that send FRC-style castling
               when they shouldn't (like TSCP-Gothic) */
            switch(moveType) {
@@ -9246,7 +9248,7 @@ FakeBookMove: // [HGM] book: we jump here to simulate machine moves after book h
        cps->useSigterm = FALSE;
     }
     if (strncmp(message, "feature ", 8) == 0) { // [HGM] moved forward to pre-empt non-compliant commands
-      ParseFeatures(message+8, cps); if(tryNr < 3) tryNr = 3;
+      ParseFeatures(message+8, cps); if(tryNr && tryNr < 3) tryNr = 3;
       return; // [HGM] This return was missing, causing option features to be recognized as non-compliant commands!
     }