Fix USI move conversion
authorH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 14 Jul 2020 09:58:21 +0000 (11:58 +0200)
committerH.G.Muller <hgm@hgm-xboard.(none)>
Tue, 14 Jul 2020 12:03:26 +0000 (14:03 +0200)
The previous patches have broken USI mode, sending the move from the
input line to the engine rather than the converted one.

UCI2WB.c

index d7417d0..1dd839e 100644 (file)
--- a/UCI2WB.c
+++ b/UCI2WB.c
@@ -280,7 +280,7 @@ HandleEngineOutput()
            } else move[moveNr][0] = 0;\r
            Move4GUI(line+9);\r
            printf("move %s\n", line+9); // send move to GUI\r
-            if(move[moveNr][0]) printf("Hint: %s\n", move[moveNr]);\r
+            if(p) Move4GUI(p+7), printf("Hint: %s\n", p+7);\r
            if(lastScore == 100001 && iniPos[0] != 'f') { printf("%s {mate}\n", stm == BLACK ? "1-0" : "0-1"); computer = NONE; }\r
            fflush(stdout); return;\r
        }\r
@@ -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 = line+7; while(qEnd < queue+10000 && (*qEnd++ = *p++) != '\n') {}\r
+               p = command; *qEnd++ = 'e'; *qEnd++ = ' '; while(qEnd < queue+10000 && (*qEnd++ = *p++)) {}\r
                Sync(WAKEUP);                    // queue move for adding it to game (and toggle stm)\r
            }\r
        } else\r