Logout from ICS after fatal error
authorH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 9 Mar 2016 09:53:35 +0000 (10:53 +0100)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Wed, 9 Mar 2016 09:53:35 +0000 (10:53 +0100)
Exiting of XBoard after a fatal error such as crashing of the engine
could be delayed by popping up an exit message, which then had to be
confirmed first. This would leave XBoard in zippy mode open for new
challenges, which it would even accept, and lose by forfeit. Now
we send a 'logout' command to the ICS before popping up the exit
message.

dialogs.c
winboard/winboard.c

index 6380b77..5eb3687 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -2364,6 +2364,7 @@ DisplayFatalError (String message, int error, int status)
     }
     if(mainOptions[W_BOARD].handle) {
        if (appData.popupExitMessage) {
+           if(appData.icsActive) SendToICS("logout\n"); // [HGM] make sure no new games will be started
            ErrorPopUp(status ? _("Fatal Error") : _("Exiting"), message, TRUE);
        } else {
            ExitEvent(status);
index 424daa5..c6a443e 100644 (file)
@@ -3753,6 +3753,7 @@ void DrawSeekClose()
 {\r
 }\r
 \r
+\r
 VOID\r
 HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board)\r
 {\r
@@ -8513,6 +8514,7 @@ DisplayFatalError(char *str, int error, int exitStatus)
     fprintf(debugFP, "%s: %s\n", label, str);\r
   }\r
   if (appData.popupExitMessage) {\r
+    if(appData.icsActive) SendToICS("logout\n"); // [HGM] make sure no new games will be started!\r
     (void) MessageBox(hwndMain, str, label, MB_OK|\r
                      (exitStatus ? MB_ICONSTOP : MB_ICONINFORMATION));\r
   }\r