From ecb84464f927f9a0a96b8a6f95943786df2107b1 Mon Sep 17 00:00:00 2001 From: Marco Costalba Date: Sat, 12 May 2012 09:21:52 +0100 Subject: [PATCH] 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 --- src/misc.h | 2 +- src/move.cpp | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) 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())) -- 2.39.2