Implement separate engine list for WinBoard
[xboard.git] / winboard / wsettings.c
index 893d91b..04957e7 100644 (file)
@@ -541,6 +541,12 @@ LRESULT CALLBACK SettingsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
                     GetOptionValues(hDlg, activeCps, activeList);\r
                else if( activeList[j].type  != Button) break;\r
                else if( !activeCps ) { (*(ButtonCallback*) activeList[j].target)(hDlg); break; }\r
+               if(j == 0) { // WinBoard save button\r
+                   SaveEngineSettings(activeCps == &second);\r
+                   EndDialog( hDlg, 0 );\r
+                   comboCallback = NULL; activeCps = NULL; settingsDlg = NULL;\r
+                   return TRUE;\r
+               }\r
                snprintf(buf, MSG_SIZ, "option %s\n", activeList[j].name);\r
                SendToProgram(buf, activeCps);\r
            }\r
@@ -784,6 +790,7 @@ EnterGroup(HWND hDlg)
 \r
 void LoadEnginePopUp(HWND hwnd, int nr)\r
 {\r
+    if(*engineListFile) ParseSettingsFile(engineListFile, &engineListFile); // contains engine list\r
     isUCI = isUCCI = storeVariant = v1 = useNick = FALSE; addToList = hasBook = TRUE; // defaults\r
     engineNr = nr;\r
     if(engineDir)    free(engineDir);    engineDir = strdup("");\r