-
To generate a move string including a pawn promotion, the Knights code starts out with a generic call to move.cpp to create a string. An example string returned is: e7e8=Q Then the string is modified in xboardprotocol.cpp to remove all capitals: e7e8=q This string is then sent to the chess engine. But the xboard protocol documentation requires the string to be: e7e8q Early on in chess engine development there were multiple formats to communicate with chess engines. Some utilzed an = sign between move and promotion piece. But the Xboard system slowly became the standard for communication. Some chess engines will also accept the = sign in Xboard mode to be historically compatable. Specifically, the following engines will accept the = sign and will run: GNUchess6, Crafty, Phalanx XXV and Gully2. Other (usually newer) engines require the correct Xboard protocol. They will stop play with an illegal move response if the move contains the = sign. Some examples are: Greko, Dreamer, Sloppy, Beowulf and Prophet4. With this fix the behavior is more correct and all of the above engines accept the pawn promotion move and continue to play. BUG: 447665 FIXED-IN: 22.08
d7880a9a