Add -userFileDirectory option
authorH.G. Muller <h.g.muller@hccnet.nl>
Mon, 9 May 2011 07:33:39 +0000 (09:33 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Mon, 9 May 2011 10:27:42 +0000 (12:27 +0200)
This volatile option is initialized from 'installDir'. It is
primarily intended for configuration of WinBoard through its master
settings file, and specifies an alternative place to create saveGameFile
or look for other user files, in stead of looking in the installDir.

args.h
frontend.h
winboard/winboard.c

diff --git a/args.h b/args.h
index fb9a263..2a3fd18 100644 (file)
--- a/args.h
+++ b/args.h
@@ -103,6 +103,7 @@ IcsTextMenuEntry icsTextMenuEntry[ICS_TEXT_MENU_SIZE];
 
 int junk;
 Boolean singleList;
+char *homeDir;\r
 
 void EnsureOnScreen(int *x, int *y, int minX, int minY);
 char StringGet(void *getClosure);
@@ -553,6 +554,7 @@ ArgDescriptor argDescriptors[] = {
   { "defaultCacheSizeEGTB", ArgInt, (void *) &appData.defaultCacheSizeEGTB, TRUE, (ArgIniType) 4 },
   { "defaultPathEGTB", ArgFilename, (void *) &appData.defaultPathEGTB, TRUE, (ArgIniType) "c:\\egtb" },
   { "language", ArgFilename, (void *) &appData.language, TRUE, (ArgIniType) "" },
+  { "userFileDirectory", ArgFilename, (void *) &homeDir, FALSE, (ArgIniType) installDir },
 
   // [HGM] tournament options
   { "tourney", ArgFilename, (void *) &appData.tourneyFile, FALSE, (ArgIniType) "" },
index f498bc4..9cee154 100644 (file)
@@ -173,7 +173,7 @@ void GLT_AddToList( char *name );
 Boolean GLT_GetFromList( int index, char *name );
 
 extern char lpUserGLT[];
-extern char homeDir[];
+extern char *homeDir;
 
 /* these are in wgamelist.c */
 void GameListPopUp P((FILE *fp, char *filename));
index 722b9c8..1655d40 100644 (file)
@@ -156,7 +156,6 @@ char *programName;
 char *settingsFileName;\r
 Boolean saveSettingsOnExit;\r
 char installDir[MSG_SIZ];\r
-char homeDir[MSG_SIZ];\r
 int errorExitStatus;\r
 \r
 BoardSize boardSize;\r
@@ -990,7 +989,6 @@ InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine)
   } else {\r
     GetCurrentDirectory(MSG_SIZ, installDir);\r
   }\r
-  safeStrCpy(homeDir, installDir, MSG_SIZ);\r
   gameInfo.boardWidth = gameInfo.boardHeight = 8; // [HGM] won't have open window otherwise\r
   screenWidth = screenHeight = 1000; // [HGM] placement: kludge to allow calling EnsureOnScreen from InitAppData\r
   InitAppData(lpCmdLine);      /* Get run-time parameters */\r