Improve previous patch
authorMarco Costalba <mcostalba@gmail.com>
Sat, 12 May 2012 08:21:52 +0000 (09:21 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 12 May 2012 08:21:52 +0000 (09:21 +0100)
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 <mcostalba@gmail.com>
src/misc.h
src/move.cpp

index 58646aaf505a7175d9583dbbbbdf56f02774ded5..29d35d5bb545b6488ac7fb6bc5be323f18a9b27c 100644 (file)
@@ -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);
 
index 62ec7579659817cc6233700f0a44ea9c41f9b3f6..74271b31428346238877a968029a488f759f8797 100644 (file)
@@ -17,7 +17,6 @@
   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include <algorithm>
 #include <cassert>
 #include <string>
 
@@ -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<MV_LEGAL> ml(pos); !ml.end(); ++ml)
       if (str == move_to_uci(ml.move(), pos.is_chess960()))