Allow pseudo-engines to adjust the clocks
[xboard.git] / args.h
diff --git a/args.h b/args.h
index 48cb3d7..19324d7 100644 (file)
--- a/args.h
+++ b/args.h
@@ -608,6 +608,7 @@ 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) "" },
 
   // [HGM] tournament options
   { "tourneyFile", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" },
@@ -680,6 +681,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 +916,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) {
@@ -1395,6 +1403,8 @@ InitAppData(char *lpCmdLine)
      appData.NrRanks > BOARD_RANKS   )
       DisplayFatalError("Recompile with BOARD_RANKS or BOARD_FILES, to support this size", 0, 2);
 
+  if(!*appData.secondChessProgram) { ASSIGN(appData.secondChessProgram, appData.firstChessProgram); } // [HGM] scp defaults to fcp
+
   /* [HGM] After parsing the options from the .ini file, and overruling them
    * with options from the command line, we now make an even higher priority
    * overrule by WB options attached to the engine command line. This so that