/*
* pgntags.c -- Functions to manage PGN tags
*
- * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc.
+ * Copyright 1995, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free
+ * Software Foundation, Inc.
*
* Enhancements Copyright 2005 Alessandro Scotti
*
success = TRUE;
} else if (StrCaseCmp(name, "Variant") == 0) {
/* xboard-defined extension */
- gameInfo->variant = StringToVariant(value);
- success = TRUE;
+ success = StrSavePtr(value, &gameInfo->variantName) != NULL;
+ if(*value && strcmp(value, engineVariant)) // keep current engine-defined variant if it matches
+ gameInfo->variant = StringToVariant(value);
+ } else if (StrCaseCmp(name, "VariantMen") == 0) {
+ success = LoadPieceDesc(value);
} else if (StrCaseCmp(name, PGN_OUT_OF_BOOK) == 0) {
/* [AS] Out of book annotation */
success = StrSavePtr(value, &gameInfo->outOfBook) != NULL;
if (gameInfo->variant != VariantNormal)
fprintf(fp, "[Variant \"%s\"]\n", VariantName(gameInfo->variant));
if (*(p = CollectPieceDescriptors()))
- fprintf(fp, "[Pieces \"%s\"]\n", p);
+ fprintf(fp, "[VariantMen \"%s\"]\n", p);
if (gameInfo->extraTags)
fputs(gameInfo->extraTags, fp);
}