version 1.4w10UCIb16
[polyglot.git] / main.cpp
index 88577d0..ce6c235 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -39,7 +39,7 @@
 // constants\r
 \r
 \r
-static const char * const Version = "1.4W10UCIb15";\r
+static const char * const Version = "1.4W10UCIb16";\r
 static const char * const HelpMessage = "\\r
 SYNTAX\n\\r
 polyglot [configfile]\n\\r
@@ -119,6 +119,19 @@ int main(int argc, char * argv[]) {
       return EXIT_SUCCESS;\r
    }\r
 \r
+   if (argc >= 3 && my_string_equal(argv[1],"-ec")) {\r
+       option_set("EngineCommand",argv[2]);\r
+       Init=true;\r
+       engine_open(Engine);\r
+       gui_init(GUI);\r
+       uci_open(Uci,Engine);\r
+       if (my_string_equal(option_get_string("EngineName"),"<empty>")) {\r
+            option_set("EngineName",Uci->name);\r
+       }\r
+       adapter_loop();\r
+       return EXIT_SUCCESS; // we don't get here\r
+   }\r
+\r
    // read options\r
 \r
    if (argc == 2) option_set("OptionFile",argv[1]); // HACK for compatibility\r
@@ -143,36 +156,53 @@ int main(int argc, char * argv[]) {
    return EXIT_SUCCESS;  // we never get here....\r
 }\r
 \r
+// polyglot_set_option\r
+\r
+void polyglot_set_option(char *name, char *value){ // this must be cleaned up!\r
+    option_set(name,value);\r
+    if(option_get_bool("Book")&&(my_string_case_equal(name,"BookFile")||my_string_case_equal(name,"Book"))){\r
+        my_log("POLYGLOT *** SETTING BOOK ***\n");\r
+        my_log("POLYGLOT BOOK \"%s\"\n",option_get_string("BookFile"));\r
+        book_close();\r
+        book_clear();\r
+        book_open(option_get_string("BookFile"));\r
+        if(!book_is_open()){\r
+            my_log("POLYGLOT Unable to open book \"%s\"\n",option_get_string("BookFile"));\r
+        }\r
+    }else if(option_get_bool("Log")&&(my_string_case_equal(name,"LogFile") ||my_string_case_equal(name,"Log"))){\r
+        my_log("POLYGLOT *** SETTING LOGFILE ***\n");\r
+        my_log("POLYGLOT LOGFILE \"%s\"\n",option_get_string("LogFile"));\r
+        my_log_close();\r
+        my_log_open(option_get_string("LogFile"));\r
+    }else if(option_get_bool("UseNice") &&(my_string_case_equal(name,"NiceValue")||my_string_case_equal(name,"UseNice"))){\r
+        my_log("POLYGLOT Adjust Engine Piority\n");\r
+        engine_set_nice_value(Engine,atoi(option_get_string("NiceValue")));\r
+    }else if(my_string_case_equal(name,"Book") && !option_get_bool("Book")){\r
+        book_close();\r
+        book_clear();\r
+    }else if(my_string_case_equal(name,"UseNice") && !option_get_bool("UseNice")){\r
+        my_log("POLYGLOT Adjust Engine Piority\n");\r
+        engine_set_nice_value(Engine,0);\r
+    }else if(my_string_case_equal(name,"Log") && !option_get_bool("Log")){\r
+        my_log("POLYGLOT QUIT LOGGING\n");\r
+        my_log_close();\r
+    }\r
+}\r
+\r
+\r
 // init_book()\r
 \r
 static void init_book(){\r
+    const char *empty_var[]={};\r
     book_clear();\r
     if (option_get_bool("Book")){\r
         my_log("POLYGLOT *** SETTING BOOK ***\n");\r
         my_log("POLYGLOT BOOK \"%s\"\n",option_get_string("BookFile"));\r
-        uci_set_option(Uci,\r
-                       PolyglotBookFile,                     // name\r
-                       option_get_string("BookFile"),        // value\r
-                       "string",                             // type\r
-                       "<empty>",                            // max\r
-                       "<empty>",                            // min\r
-                       "<empty>"                             // var\r
-                       );\r
         book_open(option_get_string("BookFile"));\r
         if(!book_is_open()){\r
             my_log("POLYGLOT Unable to open book \"%s\"\n",\r
                    option_get_string("BookFile"));\r
         }\r
-    } else {\r
-        uci_set_option(Uci,\r
-                       PolyglotBookFile,                     // name\r
-                       "<empty>",                            // value\r
-                       "string",                             // type\r
-                       "<empty>",                            // max\r
-                       "<empty>",                            // min\r
-                       "<empty>"                             // var\r
-                       );\r
-        \r
     }\r
 }\r
 \r
@@ -203,7 +233,10 @@ static void parse_option() {
 \r
       if (my_string_case_equal(line,"[engine]")) break;\r
 \r
-      if (parse_line(line,&name,&value)) option_set(name,value);\r
+      if (parse_line(line,&name,&value)) {\r
+          option_set(name,value);\r
+          option_set_default(name,value);\r
+      }\r
    }\r
 \r
    if (option_get_bool("Log")) {\r
@@ -221,8 +254,8 @@ static void parse_option() {
    Init = true;\r
    uci_open(Uci,Engine);\r
    while (my_file_read_line(file,line,256)) {\r
-       \r
        if (line[0] == '[') my_fatal("parse_option(): unknown section %s\n",line);\r
+       if (line[0]=='#') continue;\r
        \r
        if (parse_line(line,&name,&value)) {\r
            uci_send_option(Uci,name,"%s",value);\r
@@ -235,6 +268,7 @@ static void parse_option() {
    if (my_string_equal(option_get_string("EngineName"),"<empty>")) {\r
            option_set("EngineName",Uci->name);\r
    }\r
+\r
    fclose(file);\r
 }\r
 \r
@@ -317,6 +351,7 @@ void quit() {
          engine_get(Engine,string,StringSize); // HACK: calls exit() on receiving EOF\r
       }\r
    }\r
+   exit(EXIT_SUCCESS);\r
 }\r
 \r
 // stop_search()\r