Fix hanging when playing with book master
authorH.G.Muller <hgm@hgm-xboard.(none)>
Sun, 17 Jul 2022 14:15:49 +0000 (16:15 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Sun, 17 Jul 2022 14:15:49 +0000 (16:15 +0200)
The queued input moves were not terminated with a linefeed.
As a result the last move could be fused with a 'go' command that
immediatey followed it, (as it would after loading an opening line),
effectively losing the latter from the queue. The engine would then
not start.

UCI2WB.c

index 7251f5d..c1b8dc6 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -516,7 +516,7 @@ GUI2Engine()
                EPRINT((f, "# ponderhit%s\n", draw)) fflush(toE); fflush(stdout);\r
            } else {\r
                if(searching) StopSearch(1);     // ponder miss or analysis, as moves won't arrive during thinking\r
-               p = command; *qEnd++ = 'e'; *qEnd++ = ' '; while(qEnd < queue+10000 && (*qEnd++ = *p++)) {}\r
+               p = command; *qEnd++ = 'e'; *qEnd++ = ' '; while(qEnd < queue+10000 && (*qEnd++ = *p++)) {} *qEnd++ = '\n';\r
                Sync(WAKEUP);                    // queue move for adding it to game (and toggle stm)\r
            }\r
        } else\r