From: H.G. Muller Date: Wed, 27 Jan 2010 12:34:55 +0000 (+0100) Subject: Small fix in editing castling rights X-Git-Tag: gtk-20100206~3 X-Git-Url: http://winboard.nl/cgi-bin?p=xboard.git;a=commitdiff_plain;h=14ae6044530978bb1bf5ff45cc14376b3832c457 Small fix in editing castling rights If there is no King with rights, the e-file is used to decide if a Rook with rights is the K-side or Q-side Rook. This at least works with corner Rooks, to avoid disappearence of Rook-rights on repetitive editing of a position through intermediates with no King-rights. --- diff --git a/backend.c b/backend.c index 2c245d6..cfc9b6f 100644 --- a/backend.c +++ b/backend.c @@ -12023,11 +12023,13 @@ EditPositionDone(Boolean fakeRights) kf = NoRights; err = 0; for(f=BOARD_RGHT-1; f>=0; f--) if(rightsBoard[0][f] == 2) { if(kf != NoRights) err=10; boards[0][CASTLING][2] = kf = f; } + if(kf == NoRights) kf = 4; for(f=BOARD_RGHT-1; f>=0; f--) if(rightsBoard[0][f] == 1) { err++; boards[0][CASTLING][f=0; f--) if(rightsBoard[BOARD_HEIGHT-1][f] == 2) { if(kf != NoRights) err=10; boards[0][CASTLING][5] = kf = f; } + if(kf == NoRights) kf = 4; for(f=BOARD_RGHT-1; f>=0; f--) if(rightsBoard[BOARD_HEIGHT-1][f] == 1) { err++; boards[0][CASTLING][3+(f nrCastlingRights) DisplayError("unclear castling rights", 0);