gameInfo->blackRating = -1; /* unknown */
gameInfo->variant = VariantNormal;
gameInfo->outOfBook = NULL;
+ gameInfo->resultDetails = NULL;
}
ListGame *currentListGame = NULL;
int error;
int offset;
+ char lastComment[MSG_SIZ];
GameListFree(&gameList);
yynewfile(f);
lastStart = MoveNumberOne;
}
break;
+ case WhiteWins: // [HGM] rescom: save last comment as result details
+ case BlackWins:
+ case GameIsDrawn:
+ case GameUnfinished:
+ if (currentListGame->gameInfo.resultDetails != NULL) {
+ free(currentListGame->gameInfo.resultDetails);
+ }
+ if(yy_text[0] == '{') { char *p;
+ strcpy(lastComment, yy_text+1);
+ if(p = strchr(lastComment, '}')) *p = 0;
+ currentListGame->gameInfo.resultDetails = StrSave(lastComment);
+ }
+ break;
default:
break;
}
if (gameInfo->outOfBook != NULL) {
free(gameInfo->outOfBook);
}
+ if (gameInfo->resultDetails != NULL) {
+ free(gameInfo->resultDetails);
+ }
GameListInitGameInfo(gameInfo);
}
case GLT_OUT_OF_BOOK:
strncpy( buf, gameInfo->outOfBook ? gameInfo->outOfBook : "?", MAX_FIELD_LEN );
break;
+ case GLT_RESULT_COMMENT:
+ strncpy( buf, gameInfo->resultDetails ? gameInfo->resultDetails : "res?", MAX_FIELD_LEN );
+ break;
default:
break;
}