From: H.G.Muller Date: Tue, 18 Jun 2019 14:27:31 +0000 (+0200) Subject: Fix saving of engine list X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=1637c7a00c79290ddc3e2b3604d2c50d2c4b6ac4;p=xboard.git Fix saving of engine list When a separate engine listw as specified it was only saved after altering engine settings. Not after Edit Engine List or on exit. Now it is saved after editing, but not on exit. The latter should cause less loss of data when multiple instances of WinBoard are open. --- diff --git a/backend.c b/backend.c index f43d1e9..fe7ad95 100644 --- a/backend.c +++ b/backend.c @@ -11498,7 +11498,7 @@ SaveEngineSettings (int n) s = malloc(len); snprintf(s, len, "%s%s%s", firstChessProgramNames, currentEngine[n], q); FREE(firstChessProgramNames); firstChessProgramNames = s; // new list - if(*engineListFile) SaveEngineList(); + SaveEngineList(); } // following implemented as macro to avoid type limitations diff --git a/dialogs.c b/dialogs.c index 1372cfa..84b63fc 100644 --- a/dialogs.c +++ b/dialogs.c @@ -1246,9 +1246,7 @@ static void changeTags (int n) { GenericReadout(tagsOptions, 1); - if(bookUp) SaveToBook(tagsText), DisplayBook(currentMove); else - if(resPtr) { ASSIGN(*resPtr, tagsText); } else - ReplaceTags(tagsText, &gameInfo); + NewTagsCallback(0); } void diff --git a/winboard/wedittags.c b/winboard/wedittags.c index 63080c9..68fb54a 100644 --- a/winboard/wedittags.c +++ b/winboard/wedittags.c @@ -137,7 +137,7 @@ EditTagsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) *p++ = *q++; } *p = NULLCHAR; err = 0; - if(resPtr) *resPtr = strdup(str); else + if(resPtr) { *resPtr = strdup(str); if(resPtr == &firstChessProgramNames) SaveEngineList(); } else if(bookUp) SaveToBook(str), DisplayBook(currentMove); else err = ReplaceTags(str, &gameInfo); if (err) DisplayError(_("Error replacing tags."), err);