src/chess/pgn.c

changeset 127
7258a46bf5ae
parent 126
d58b2abdd330
--- a/src/chess/pgn.c	Fri May 22 18:34:02 2026 +0200
+++ b/src/chess/pgn.c	Tue May 26 15:21:42 2026 +0200
@@ -250,6 +250,11 @@
     return date;
 }
 
+const char *pgn_player_name(GameState *gamestate, uint8_t color) {
+    const char *name = color == WHITE ? gamestate->wname : gamestate->bname;
+    return name[0] != '\0' ? name : "Anonymous";
+}
+
 void write_pgn(FILE* stream, GameState *gamestate, GameInfo *gameinfo,
         bool export_comments) {
     /* STR tag pairs */
@@ -257,9 +262,8 @@
     fprintf(stream, "[Site \"%s\"]\n", "Somewhere on Earth");
     fprintf(stream, "[Date \"%s\"]\n", pgn_date(gamestate));
     fprintf(stream, "[Round \"%s\"]\n", "-");
-    // TODO: maybe allow players to enter their names before game starts
-    fprintf(stream, "[White \"%s\"]\n", "Anonymous");
-    fprintf(stream, "[Black \"%s\"]\n", "Anonymous");
+    fprintf(stream, "[White \"%s\"]\n", pgn_player_name(gamestate, WHITE));
+    fprintf(stream, "[Black \"%s\"]\n", pgn_player_name(gamestate, BLACK));
 
     char *result;
     if (gamestate->stalemate || gamestate->remis) {

mercurial