diff --git a/src/misc.h b/src/misc.h index 58646aaf..29d35d5b 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, 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 62ec7579..74271b31 100644 --- a/src/move.cpp +++ b/src/move.cpp @@ -17,7 +17,6 @@ along with this program. If not, see . */ -#include #include #include @@ -57,10 +56,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, 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); + if (str.length() == 5) // Junior could send promotion in uppercase + str[4] = char(tolower(str[4])); for (MoveList ml(pos); !ml.end(); ++ml) if (str == move_to_uci(ml.move(), pos.is_chess960()))