| 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--; |