/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008-2009 Marco Costalba
+ Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
}
// Our StateInfo st is about going out of scope so copy
// its content inside RootPosition before they disappear.
- RootPosition.saveState();
+ RootPosition.detach();
}
}
}
void set_option(UCIInputParser& uip) {
- string token, name;
+ string token, name, value;
if (!(uip >> token)) // operator>>() skips any whitespace
return;
while (uip >> token && token != "value")
name += (" " + token);
- if (token == "value")
+ if (token == "value" && uip >> value)
{
- // Reads until end of line and left trim white space
- getline(uip, token);
- token.erase(0, token.find_first_not_of(" \n\r\t"));
+ while (uip >> token)
+ value += (" " + token);
- set_option_value(name, token);
+ set_option_value(name, value);
} else
push_button(name);
}
else if (token == "searchmoves")
{
int numOfMoves = 0;
- while (!uip.eof())
- {
- uip >> token;
+ while (uip >> token)
searchMoves[numOfMoves++] = move_from_string(RootPosition, token);
- }
+
searchMoves[numOfMoves] = MOVE_NONE;
}
}
- if (moveTime)
- infinite = true; // HACK
-
assert(RootPosition.is_ok());
return think(RootPosition, infinite, ponder, RootPosition.side_to_move(),
string token;
int depth, tm, n;
- Position pos = RootPosition;
+ Position pos(RootPosition);
if (!(uip >> depth))
return;