X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=menus.c;h=9ddfbada41e88e0729df9a8174aade172adefed3;hb=ba12e63149a003b88b8525d6eb50d48539c660b6;hp=9d2b286229c5d5656a79881cec324a0c44af633c;hpb=c927f6b84a06bd7ed84adf0216b24acb042115d2;p=xboard.git diff --git a/menus.c b/menus.c index 9d2b286..9ddfbad 100644 --- a/menus.c +++ b/menus.c @@ -105,6 +105,7 @@ extern char *getenv(); char *gameCopyFilename, *gamePasteFilename; Boolean saveSettingsOnExit; char *settingsFileName; +char gamesDir[MSG_SIZ], positionsDir[MSG_SIZ], textureDir[MSG_SIZ], bookDir[MSG_SIZ], piecesDir[MSG_SIZ]; static int LoadGamePopUp (FILE *f, int gameNumber, char *title) @@ -173,10 +174,12 @@ ReloadPositionProc () void LoadPositionProc() { + static char buf[MSG_SIZ]; if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { Reset(FALSE, TRUE); } - FileNamePopUp(_("Load position file name?"), "", ".fen .epd .pos", LoadPosition, "rb"); + snprintf(buf, MSG_SIZ, "%s/", appData.positionDir); + FileNamePopUp(_("Load position file name?"), buf, ".fen .epd .pos", LoadPosition, "rb"); } void @@ -1176,6 +1179,7 @@ InstallNewEngine (char *command, char *dir, char *variants, char *protocol) snprintf(buf + strlen(buf), MSG_SIZ - strlen(buf), " -fd %s", dir); if(!strcmp(protocol, "uci")) snprintf(buf + strlen(buf), MSG_SIZ - strlen(buf), " -fUCI"); + if(strstr(firstChessProgramNames, buf)) return; // avoid duplicats // append line quote = malloc(strlen(firstChessProgramNames) + strlen(buf) + 2); sprintf(quote, "%s%s\n", firstChessProgramNames, buf);