From ea52328217918f1d42c759ad1c73693bdd17474c Mon Sep 17 00:00:00 2001 From: Fabian Fichter Date: Sun, 9 Nov 2025 22:38:13 +0100 Subject: [PATCH] Fix flip command for FENs with pockets (#930) Closes #924. --- src/position.cpp | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/src/position.cpp b/src/position.cpp index 609441d..f2b82a9 100644 --- a/src/position.cpp +++ b/src/position.cpp @@ -3232,8 +3232,16 @@ void Position::flip() { for (Rank r = max_rank(); r >= RANK_1; --r) // Piece placement { std::getline(ss, token, r > RANK_1 ? '/' : ' '); - f.insert(0, token + (f.empty() ? " " : "/")); + size_t bracketPos = token.find('['); + if (bracketPos != string::npos) + { + f.insert(0, token.substr(0, bracketPos) + (f.empty() ? "" : "/")); + f += token.substr(bracketPos); + } + else + f.insert(0, token + (f.empty() ? "" : "/")); } + f += " "; ss >> token; // Active color f += (token == "w" ? "B " : "W "); // Will be lowercased later -- 1.7.0.4