Implement -autoInstall option
[xboard.git] / args.h
diff --git a/args.h b/args.h
index 309f653..9ce2b47 100644 (file)
--- a/args.h
+++ b/args.h
@@ -609,6 +609,7 @@ ArgDescriptor argDescriptors[] = {
   { "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) "" },
 
   // [HGM] tournament options
   { "tourneyFile", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" },
@@ -1611,10 +1612,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 __APPLE__
+        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: