mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
Simplify set_option()
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
06c14d0a37
commit
a8741bd59f
2 changed files with 20 additions and 30 deletions
43
src/uci.cpp
43
src/uci.cpp
|
@ -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;
|
||||||
|
|
||||||
Options[name].set_value(value);
|
if (Options.find(name) != Options.end())
|
||||||
|
Options[name].set_value(value);
|
||||||
|
else
|
||||||
|
cout << "No such option: " << name << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -163,8 +163,11 @@ void Option::set_value(const string& value) {
|
||||||
|
|
||||||
assert(!type.empty());
|
assert(!type.empty());
|
||||||
|
|
||||||
if ( (type == "check" || type == "button")
|
if (value.empty())
|
||||||
&& !(value == "true" || value == "false"))
|
return;
|
||||||
|
|
||||||
|
if ( (type == "check" || type == "button")
|
||||||
|
!= (value == "true" || value == "false"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (type == "spin")
|
if (type == "spin")
|
||||||
|
|
Loading…
Add table
Reference in a new issue