From 450731a155ceaffd2cfc99b53825ec5cbb196358 Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Sun, 9 Jul 2023 21:17:12 +0200 Subject: [PATCH] Skip parsing castling rights when disabled Closes #678. --- src/position.cpp | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index 3da05e2..0054fda 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -348,10 +348,10 @@ Position& Position::set(const Variant* v, const string& fenStr, bool isChess960, token = char(toupper(token)); - if (token == 'K') + if (castling_enabled() && token == 'K') for (rsq = make_square(var->castlingRookKingsideFile, castling_rank(c)); !(castling_rook_pieces(c) & type_of(piece_on(rsq))) || color_of(piece_on(rsq)) != c; --rsq) {} - else if (token == 'Q') + else if (castling_enabled() && token == 'Q') for (rsq = make_square(var->castlingRookQueensideFile, castling_rank(c)); !(castling_rook_pieces(c) & type_of(piece_on(rsq))) || color_of(piece_on(rsq)) != c; ++rsq) {} else if (token >= 'A' && token <= 'A' + max_file()) -- 1.7.0.4