Fix PV output in Chess960
authorJoona Kiiski <joona.kiiski@gmail.com>
Sun, 24 Jul 2011 10:56:47 +0000 (11:56 +0100)
committerMarco Costalba <mcostalba@gmail.com>
Sun, 24 Jul 2011 17:27:29 +0000 (18:27 +0100)
We missed to set chess960 flag into the std::stringstream used to
setup the PV line.

Bug introduced with commit f803f33e6383fea1074aca2cf625983e148a6668
of 30/12/2010 when we started to print PV line into a std::stringstream
instead of directly into cout, where the chess960 flag is correctly set.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
src/search.cpp

index aec6434553a8c82f48908fad4183ed20ea50121d..c018cbe3c49b7283d3d64de2f5ce235c79b74864 100644 (file)
@@ -212,7 +212,7 @@ namespace {
   int current_search_time(int set = 0);
   std::string score_to_uci(Value v, Value alpha, Value beta);
   std::string speed_to_uci(int64_t nodes);
   int current_search_time(int set = 0);
   std::string score_to_uci(Value v, Value alpha, Value beta);
   std::string speed_to_uci(int64_t nodes);
-  std::string pv_to_uci(Move pv[], int pvNum);
+  std::string pv_to_uci(Move pv[], int pvNum, bool chess960);
   std::string depth_to_uci(Depth depth);
   void poll(const Position& pos);
   void wait_for_stop_or_ponderhit();
   std::string depth_to_uci(Depth depth);
   void poll(const Position& pos);
   void wait_for_stop_or_ponderhit();
@@ -589,7 +589,7 @@ namespace {
                          << depth_to_uci(depth * ONE_PLY)
                          << score_to_uci(Rml[i].pv_score, alpha, beta)
                          << speed_to_uci(pos.nodes_searched())
                          << depth_to_uci(depth * ONE_PLY)
                          << score_to_uci(Rml[i].pv_score, alpha, beta)
                          << speed_to_uci(pos.nodes_searched())
-                         << pv_to_uci(Rml[i].pv, i + 1) << endl;
+                         << pv_to_uci(Rml[i].pv, i + 1, pos.is_chess960()) << endl;
 
             // In case of failing high/low increase aspiration window and research,
             // otherwise exit the fail high/low loop.
 
             // In case of failing high/low increase aspiration window and research,
             // otherwise exit the fail high/low loop.
@@ -1778,11 +1778,11 @@ split_point_start: // At split points actual search starts from here
   // pv_to_uci() returns a string with information on the current PV line
   // formatted according to UCI specification.
 
   // pv_to_uci() returns a string with information on the current PV line
   // formatted according to UCI specification.
 
-  std::string pv_to_uci(Move pv[], int pvNum) {
+  std::string pv_to_uci(Move pv[], int pvNum, bool chess960) {
 
     std::stringstream s;
 
 
     std::stringstream s;
 
-    s << " multipv " << pvNum << " pv ";
+    s << " multipv " << pvNum << " pv " << set960(chess960);
 
     for ( ; *pv != MOVE_NONE; pv++)
         s << *pv << " ";
 
     for ( ; *pv != MOVE_NONE; pv++)
         s << *pv << " ";