X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=args.h;h=270866d58b6905ec45221d71088d2a1faf5754c8;hb=8cadd120c307bb1049f6d08d9ae23f67432bd038;hp=29308b5f162a4d073d80c9789f36c4c11c4f916f;hpb=38aca841fff872e35d5aa5140b91e22df7e2825f;p=xboard.git diff --git a/args.h b/args.h index 29308b5..270866d 100644 --- a/args.h +++ b/args.h @@ -608,6 +608,9 @@ ArgDescriptor argDescriptors[] = { { "ub", ArgBoolean, (void *) &appData.useBorder, FALSE, INVALID }, { "border", ArgFilename, (void *) &appData.border, TRUE, (ArgIniType) "" }, { "finger", ArgFilename, (void *) &appData.finger, FALSE, (ArgIniType) "" }, + { "inscriptions", ArgString, (void *) &appData.inscriptions, XBOARD, (ArgIniType) "" }, + { "autoInstall", ArgString, (void *) &appData.autoInstall, XBOARD, (ArgIniType) "" }, + { "fixedSize", ArgBoolean, (void *) &appData.fixedSize, TRUE, (ArgIniType) FALSE }, // [HGM] tournament options { "tourneyFile", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" }, @@ -680,6 +683,8 @@ ArgDescriptor argDescriptors[] = { { "scoreWhite", ArgBoolean, (void *) &appData.scoreWhite, TRUE, FALSE }, { "evalZoom", ArgInt, (void *) &appData.zoom, TRUE, (ArgIniType) 1 }, { "evalThreshold", ArgInt, (void *) &appData.evalThreshold, TRUE, (ArgIniType) 25 }, + { "firstPseudo", ArgTrue, (void *) &appData.pseudo[0], FALSE, FALSE }, + { "secondPseudo", ArgTrue, (void *) &appData.pseudo[1], FALSE, FALSE }, { "fSAN", ArgTrue, (void *) &appData.pvSAN[0], FALSE, FALSE }, { "sSAN", ArgTrue, (void *) &appData.pvSAN[1], FALSE, FALSE }, { "pairingEngine", ArgFilename, (void *) &appData.pairingEngine, TRUE, "" }, @@ -913,11 +918,16 @@ ParseSettingsFile(char *name, char **addr) if (ok) { f = fopen(fullname, "r"); #ifdef DATADIR - if(f == NULL && *fullname != '/') { // when a relative name did not work + if(f == NULL && *fullname != '/' && !addr) { // when a relative name did not work char buf[MSG_SIZ]; - snprintf(buf, MSG_SIZ, "%s/themes/conf", DATADIR); - MySearchPath(buf, name, fullname); // also look in standard place + snprintf(buf, MSG_SIZ, "~/.xboard/themes/conf/%s", name); + MySearchPath(installDir, buf, fullname); // first look in user's own files f = fopen(fullname, "r"); + if(f == NULL) { + snprintf(buf, MSG_SIZ, "%s/themes/conf", DATADIR); + MySearchPath(buf, name, fullname); // also look in standard place + f = fopen(fullname, "r"); + } } #endif if (f != NULL) { @@ -1112,13 +1122,13 @@ ParseArgs(GetFunc get, void *cl) if(posflag) { // positional argument: the argName was implied, and per default set as -lgf int len = strlen(argValue) - 4; // start of filename extension if(len < 0) len = 0; - if(!strcasecmp(argValue + len, ".trn")) { + if(!StrCaseCmp(argValue + len, ".trn")) { ad = &argDescriptors[2]; // correct implied type to -tf appData.tourney = TRUE; // let it parse -tourneyOptions later - } else if(!strcasecmp(argValue + len, ".fen") || !strcasecmp(argValue + len, ".epd")) { + } else if(!StrCaseCmp(argValue + len, ".fen") || !StrCaseCmp(argValue + len, ".epd")) { ad = &argDescriptors[1]; // correct implied type to -lpf appData.viewer = TRUE; - } else if(!strcasecmp(argValue + len, ".ini") || !strcasecmp(argValue + len, ".xop")) { + } else if(!StrCaseCmp(argValue + len, ".ini") || !StrCaseCmp(argValue + len, ".xop")) { ad = &argDescriptors[0]; // correct implied type to -opt } else if(GetEngineLine(argValue, 11)) { ad = &argDescriptors[3]; // correct implied type to -is @@ -1603,10 +1613,17 @@ SaveSettings(char* name) break; case ArgFilename: if(*(char**)ad->argLoc == NULL) break; // just in case - if (strchr(*(char **)ad->argLoc, '\"')) { - fprintf(f, OPTCHAR "%s" SEPCHAR "'%s'\n", ad->argName, *(char **)ad->argLoc); - } else { - fprintf(f, OPTCHAR "%s" SEPCHAR "\"%s\"\n", ad->argName, *(char **)ad->argLoc); + { char buf[MSG_SIZ]; + snprintf(buf, MSG_SIZ, "%s", *(char**)ad->argLoc); +#ifdef OSXAPP + if(strstr(buf, DATADIR) == buf) + snprintf(buf, MSG_SIZ, "~~%s", *(char**)ad->argLoc + strlen(DATADIR)); +#endif + if (strchr(buf, '\"')) { + fprintf(f, OPTCHAR "%s" SEPCHAR "'%s'\n", ad->argName, buf); + } else { + fprintf(f, OPTCHAR "%s" SEPCHAR "\"%s\"\n", ad->argName, buf); + } } break; case ArgBoardSize: