src/chess/pgn.c

changeset 173
e541b6002933
parent 163
2a6d83f4677e
equal deleted inserted replaced
172:ba1bf80d10cc 173:e541b6002933
57 size_t pgn_error_position(void) { 57 size_t pgn_error_position(void) {
58 return pgn_error_pos; 58 return pgn_error_pos;
59 } 59 }
60 60
61 static const char *pgn_result(GameState *gamestate) { 61 static const char *pgn_result(GameState *gamestate) {
62 if (gamestate->stalemate || gamestate->remis) { 62 if (is_game_drawn(gamestate)) {
63 return "1/2-1/2"; 63 return "1/2-1/2";
64 } else if (gamestate->wresign) { 64 } else if (gamestate->wresign) {
65 return "0-1"; 65 return "0-1";
66 } else if (gamestate->bresign) { 66 } else if (gamestate->bresign) {
67 return "1-0"; 67 return "1-0";
194 } 194 }
195 } 195 }
196 movetext_ends_with_result = true; 196 movetext_ends_with_result = true;
197 break; 197 break;
198 } else if (c == '/') { 198 } else if (c == '/') {
199 gamestate->remis = !gamestate->stalemate; 199 /* only set remis flag if the game was not drawn otherwise */
200 gamestate->remis = !is_game_drawn(gamestate);
200 movetext_ends_with_result = true; 201 movetext_ends_with_result = true;
201 break; 202 break;
202 } else { 203 } else {
203 /* oops, it was a move number, go back! */ 204 /* oops, it was a move number, go back! */
204 pgndata--; 205 pgndata--;

mercurial