Move args parsing to UCI::loop
authorMarco Costalba <mcostalba@gmail.com>
Sat, 12 Apr 2014 10:52:10 +0000 (12:52 +0200)
committerMarco Costalba <mcostalba@gmail.com>
Sat, 12 Apr 2014 11:51:52 +0000 (13:51 +0200)
This leaves a very clean main.cpp

No functional change.

src/main.cpp
src/uci.cpp
src/ucioption.h

index dd0b7ff8a88b0b2c4250105ea10bf93dd3dcb9f4..cbb260f26d9f0289785e712a22cb075d158480e6 100644 (file)
@@ -18,7 +18,6 @@
 */
 
 #include <iostream>
-#include <string>
 
 #include "bitboard.h"
 #include "evaluate.h"
@@ -42,12 +41,7 @@ int main(int argc, char* argv[]) {
   Threads.init();
   TT.resize(Options["Hash"]);
 
-  std::string args;
-
-  for (int i = 1; i < argc; ++i)
-      args += std::string(argv[i]) + " ";
-
-  UCI::loop(args);
+  UCI::loop(argc, argv);
 
   Threads.exit();
 }
index df01836b3d8069c48519db4a909c5144ae3ce4d8..e4a4393cfe7280d4e3ef9bbfd77da6e86d9cba30 100644 (file)
@@ -143,13 +143,16 @@ namespace {
 /// that we exit gracefully if the GUI dies unexpectedly. In addition to the UCI
 /// commands, the function also supports a few debug commands.
 
-void UCI::loop(const string& args) {
+void UCI::loop(int argc, char* argv[]) {
 
   Position pos(StartFEN, false, Threads.main()); // The root position
-  string token, cmd = args;
+  string token, cmd;
+
+  for (int i = 1; i < argc; ++i)
+      cmd += std::string(argv[i]) + " ";
 
   do {
-      if (args.empty() && !getline(cin, cmd)) // Block here waiting for input
+      if (argc == 1 && !getline(cin, cmd)) // Block here waiting for input
           cmd = "quit";
 
       istringstream is(cmd);
@@ -208,7 +211,7 @@ void UCI::loop(const string& args) {
       else
           sync_cout << "Unknown command: " << cmd << sync_endl;
 
-  } while (token != "quit" && args.empty()); // Args have one-shot behaviour
+  } while (token != "quit" && argc == 1); // Passed args have one-shot behaviour
 
   Threads.wait_for_think_finished(); // Cannot quit whilst the search is running
 }
index 19ca14fdd5746d74e85cecca358b7f6f47537761..87411a44929e93ede02be81d186cf81822566e95 100644 (file)
@@ -61,7 +61,7 @@ private:
 };
 
 void init(OptionsMap&);
-void loop(const std::string&);
+void loop(int argc, char* argv[]);
 
 } // namespace UCI