Fix handling of draw offers
authorH.G.Muller <hgm@hgm-xboard.(none)>
Sat, 18 Apr 2020 17:47:30 +0000 (19:47 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Sat, 18 Apr 2020 17:51:36 +0000 (19:51 +0200)
The CECP command to offer the engine a draw is "draw", but UCI2WB was
testing for "offer" (the engine->GUI command) in its GUI thread.
This would even cause hanging when the command was received during
pondering, because it was now queued before the input move, eclipsing
the latter, and thus preventing it to terminate pondering.

UCI2WB.c

index e636628..85db1a8 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -466,7 +466,7 @@ GUI2Engine()
        if(!strcmp(command, "usermove")) { difficult--; break; } // for efficiency during game play, moves, time & otim are tried first\r
        else if(!strcmp(command, "time"))   sscanf(line+4, "%d", &myTime),  myTime  = (10*myTime)/unit;\r
        else if(!strcmp(command, "otim"))   sscanf(line+4, "%d", &hisTime), hisTime = (10*hisTime)/unit;\r
-       else if(!strcmp(command, "offer")) drawOffer = 1; // backlogged anyway, so this can be done instantly\r
+       else if(!strcmp(command, "draw"))   drawOffer = 1; // backlogged anyway, so this can be done instantly\r
        else if(!strcmp(command, "post"))  post = 1;\r
        else if(!strcmp(command, "nopost"))post = 0;\r
        else if(!strcmp(command, ".")) {\r