An EditGameEvent can interrupt tinking of an engine, and the engine
might or might not send back a move as a result of that thinking.
To solve this, a "force" command sent to an engine playing white or
black will now be followed by a "ping". (If supported, of course.)
case MachinePlaysBlack:
case BeginningOfGame:
SendToProgram("force\n", &first);
+ if (first.usePing) { // [HGM] always send ping when we might interrupt machine thinking
+ char buf[MSG_SIZ];
+ snprintf(buf, MSG_SIZ, "ping %d\n", initPing = ++first.lastPing);
+ SendToProgram(buf, &first);
+ }
SetUserThinkingEnables();
break;
case PlayFromGameFile: