along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include <algorithm>
#include <cassert>
#include <string>
/// 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()))