Also search indirection files in user's .xboard tree
[xboard.git] / args.h
diff --git a/args.h b/args.h
index 48cb3d7..f52404f 100644 (file)
--- a/args.h
+++ b/args.h
@@ -913,11 +913,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 +1400,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