Skip to content

Commit ea52328

Browse files
authored
Fix flip command for FENs with pockets (#930)
Closes #924.
1 parent e6ff189 commit ea52328

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

src/position.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3232,8 +3232,16 @@ void Position::flip() {
32323232
for (Rank r = max_rank(); r >= RANK_1; --r) // Piece placement
32333233
{
32343234
std::getline(ss, token, r > RANK_1 ? '/' : ' ');
3235-
f.insert(0, token + (f.empty() ? " " : "/"));
3235+
size_t bracketPos = token.find('[');
3236+
if (bracketPos != string::npos)
3237+
{
3238+
f.insert(0, token.substr(0, bracketPos) + (f.empty() ? "" : "/"));
3239+
f += token.substr(bracketPos);
3240+
}
3241+
else
3242+
f.insert(0, token + (f.empty() ? "" : "/"));
32363243
}
3244+
f += " ";
32373245

32383246
ss >> token; // Active color
32393247
f += (token == "w" ? "B " : "W "); // Will be lowercased later

0 commit comments

Comments
 (0)