From: Marco Costalba Date: Sat, 12 May 2012 08:21:52 +0000 (+0100) Subject: Improve previous patch X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=ecb84464f927f9a0a96b8a6f95943786df2107b1 Improve previous patch Only in case of promotion we care about an upper case promotion piece char, so std::transform() is overkill for the task. No functional change. Signed-off-by: Marco Costalba --- 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()))