1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 08:43:09 +00:00

Simplify set_option()

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2011-01-09 14:45:49 +01:00
parent 06c14d0a37
commit a8741bd59f
2 changed files with 20 additions and 30 deletions

View file

@ -142,21 +142,21 @@ namespace {
string fen, token; string fen, token;
if (!(up >> token) || (token != "startpos" && token != "fen")) up >> token; // operator>>() skips any whitespace
return;
if (token == "startpos") if (token == "startpos")
{ {
pos.from_fen(StartPositionFEN, false); pos.from_fen(StartPositionFEN, false);
up >> token; // Consume "moves" token up >> token; // Consume "moves" token
} }
else // fen else if (token == "fen")
{ {
while (up >> token && token != "moves") while (up >> token && token != "moves")
fen += token + string(" "); fen += token + " ";
pos.from_fen(fen, Options["UCI_Chess960"].value<bool>()); pos.from_fen(fen, Options["UCI_Chess960"].value<bool>());
} }
else return;
// Parse move list (if any) // Parse move list (if any)
while (up >> token) while (up >> token)
@ -172,39 +172,26 @@ namespace {
void set_option(UCIParser& up) { void set_option(UCIParser& up) {
string token, name, value; string value = "true"; // UCI buttons don't have a "value" field
string token, name;
if (!(up >> token) || token != "name") // operator>>() skips any whitespace up >> token; // Consume "name" token
return; up >> name; // Read option name
if (!(up >> name))
return;
// Handle names with included spaces // Handle names with included spaces
while (up >> token && token != "value") while (up >> token && token != "value")
name += (" " + token); name += " " + token;
if (Options.find(name) == Options.end()) up >> value; // Read option value
{
cout << "No such option: " << name << endl;
return;
}
// Is a button ?
if (token != "value")
{
Options[name].set_value("true");
return;
}
if (!(up >> value))
return;
// Handle values with included spaces // Handle values with included spaces
while (up >> token) while (up >> token)
value += (" " + token); value += " " + token;
if (Options.find(name) != Options.end())
Options[name].set_value(value); Options[name].set_value(value);
else
cout << "No such option: " << name << endl;
} }

View file

@ -163,8 +163,11 @@ void Option::set_value(const string& value) {
assert(!type.empty()); assert(!type.empty());
if (value.empty())
return;
if ( (type == "check" || type == "button") if ( (type == "check" || type == "button")
&& !(value == "true" || value == "false")) != (value == "true" || value == "false"))
return; return;
if (type == "spin") if (type == "spin")