From: Balint Pfliegel Date: Fri, 11 May 2012 23:01:33 +0000 (+0100) Subject: Junior promotion patch X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=1b2af05ea69abffff432f7f20685e144bd24055e Junior promotion patch Assumption: Junior sends promotions according to the side to move (ucase/lcase). Fact: Stockfish generally handles promotion lcase. Patch: Handling position fen input moves always with lcase promotions. Ported back by Portfish. No functional change. Signed-off-by: Marco Costalba --- diff --git a/src/misc.h b/src/misc.h index d6bc2672..58646aaf 100644 --- a/src/misc.h +++ b/src/misc.h @@ -38,7 +38,7 @@ extern void dbg_mean_of(int v); extern void dbg_print(); class Position; -extern Move move_from_uci(const Position& pos, const std::string& str); +extern Move move_from_uci(const Position& pos, std::string str); extern const std::string move_to_uci(Move m, bool chess960); extern const std::string move_to_san(Position& pos, Move m); diff --git a/src/move.cpp b/src/move.cpp index 7e171f7a..62ec7579 100644 --- a/src/move.cpp +++ b/src/move.cpp @@ -17,6 +17,7 @@ along with this program. If not, see . */ +#include #include #include @@ -56,7 +57,10 @@ const string move_to_uci(Move m, bool chess960) { /// simple coordinate notation and returns an equivalent Move if any. /// Moves are guaranteed to be legal. -Move move_from_uci(const Position& pos, const string& str) { +Move move_from_uci(const Position& pos, string str) { + + // Some GUIs, like Junior, could send promotion in uppercase + std::transform(str.begin(), str.end(), str.begin(), tolower); for (MoveList ml(pos); !ml.end(); ++ml) if (str == move_to_uci(ml.move(), pos.is_chess960()))