Provide help clicks on recently-used-engines menu items
[xboard.git] / dialogs.c
index 039232d..8624ff4 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -625,9 +625,9 @@ CommonOptionsOK (int n)
 static Option commonEngineOptions[] = {
 { 0,  0,    0, NULL, (void*) &appData.ponderNextMove, "", NULL, CheckBox, N_("Ponder Next Move") },
 { 0,  0, 1000, NULL, (void*) &appData.smpCores, "", NULL, Spin, N_("Maximum Number of CPUs per Engine:") },
-{ 0,  0,    0, NULL, (void*) &appData.polyglotDir, "", NULL, PathName, N_("Polygot Directory:") },
+{ 0,  0,    0, NULL, (void*) &appData.polyglotDir, NULL, NULL, PathName, N_("Polygot Directory:") },
 { 0,  0,16000, NULL, (void*) &appData.defaultHashSize, "", NULL, Spin, N_("Hash-Table Size (MB):") },
-{ 0,  0,    0, NULL, (void*) &egtPath, "", NULL, PathName, N_("EGTB Path:") },
+{ 0,  0,    0, NULL, (void*) &egtPath, NULL, NULL, PathName, N_("EGTB Path:") },
 { 0,  0, 1000, NULL, (void*) &appData.defaultCacheSizeEGTB, "", NULL, Spin, N_("EGTB Cache Size (MB):") },
 { 0,  0,    0, NULL, (void*) &appData.usePolyglotBook, "", NULL, CheckBox, N_("Use GUI Book") },
 { 0,  0,    0, NULL, (void*) &appData.polyglotBook, ".bin", NULL, FileName, N_("Opening-Book Filename:") },
@@ -1223,7 +1223,7 @@ NewMove ()
     addToBookFlag = !addToBookFlag;
 }
 
-static Option tagsOptions[] = {
+Option tagsOptions[] = {
 {   0,   0,   0, NULL, NULL, NULL, NULL, Label,  NULL },
 { 200, T_VSCRL | T_FILL | T_WRAP | T_TOP, 200, NULL, (void*) &tagsText, NULL, (char **) &TagsClick, TextBox, "", &appData.tagsFont },
 {   0,   0, 100, NULL, (void*) &NewMove,    NULL, NULL, Button, N_("add next move") },
@@ -1638,7 +1638,6 @@ NewFont (int n, int fnr, char *font)
 static int
 FontsOK (int n)
 {
-    extern Option historyOptions[], engoutOptions[], gamesOptions[], chatOptions[];
     int i;
     PopDown(TransientDlg); // Early popdown to prevent expose events frommasking each other
     LockBoardSize(0);
@@ -3314,10 +3313,14 @@ DirSelProc (int n, int sel)
 void
 StartDir (char *filter, char *newName)
 {
-    static char *gamesDir, *trnDir, *imgDir, *bookDir;
+    static char *gamesDir, *trnDir, *imgDir, *bookDir, *dirDir;
     static char curDir[MSG_SIZ];
     char **res = NULL;
     if(!filter || !*filter) return;
+    if(strstr(filter, "dir")) {
+       res = &dirDir;
+       if(!dirDir) dirDir= strdup(dataDir);
+    } else
     if(strstr(filter, "pgn")) res = &gamesDir; else
     if(strstr(filter, "bin")) res = &bookDir; else
     if(strstr(filter, "png")) res = &imgDir; else
@@ -3330,7 +3333,9 @@ StartDir (char *filter, char *newName)
                ASSIGN(*res, newName);
                for(p=*res; q=strchr(p, '/');) p = q + 1; *p = NULLCHAR;
            }
-           if(*curDir) chdir(curDir);
+       }
+       if(*curDir) {
+           chdir(curDir);
            *curDir = NULLCHAR;
        } else {
            getcwd(curDir, MSG_SIZ);