// constants\r
\r
\r
-static const char * const Version = "1.4.51b";\r
+static const char * const Version = "1.4.54b";\r
static const char * const HelpMessage = "\\r
SYNTAX\n\\r
* polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en enginename] [-log] [-lf logfile] [-hash value] [-bk book] [-pg <name>=<value>]* [-uci <name>=<value>]*\n\\r
\r
static void write_ini(const char *filename,\r
ini_t *ini){\r
+ // TODO Quote, dequote\r
const char *quote;\r
ini_entry_t *entry;\r
char tmp[StringSize];\r
+ char tmp1[StringSize];\r
+ char tmp2[StringSize];\r
FILE *f;\r
time_t t=time(NULL);\r
f=fopen(filename,"w");\r
ini_start_iter(ini);\r
while((entry=ini_next(ini))){\r
if(my_string_case_equal(entry->section,"polyglot")){\r
- if(strchr(entry->value,';')|| strchr(entry->value,'#')|| strchr(entry->value,'"')){\r
- quote="\"";\r
- }else{\r
- quote="";\r
- }\r
- snprintf(tmp,sizeof(tmp),"%s=%s%s%s\n",\r
- entry->name,\r
- quote,\r
- entry->value,\r
- quote);\r
+ my_quote(tmp1,entry->name,ini_specials);\r
+ my_quote(tmp2,entry->value,ini_specials);\r
+ snprintf(tmp,sizeof(tmp),"%s=%s\n",\r
+ tmp1,\r
+ tmp2);\r
tmp[sizeof(tmp)-1]='\0';\r
fprintf(f,"%s",tmp);\r
}\r
fprintf(f,"[Engine]\n");\r
ini_start_iter(ini);\r
while((entry=ini_next(ini))){\r
- if(my_string_case_equal(entry->section,"engine")){\r
- if(strchr(entry->value,';')|| strchr(entry->value,'#')|| strchr(entry->value,'"')){\r
- quote="\"";\r
- }else{\r
- quote="";\r
- }\r
- snprintf(tmp,sizeof(tmp),"%s=%s%s%s\n",\r
- entry->name,\r
- quote,\r
- entry->value,\r
- quote);\r
+ if(my_string_case_equal(entry->section,"engine")){\r
+ my_quote(tmp1,entry->name,ini_specials);\r
+ my_quote(tmp2,entry->value,ini_specials);\r
+ snprintf(tmp,sizeof(tmp),"%s=%s\n",\r
+ tmp1,\r
+ tmp2);\r
tmp[sizeof(tmp)-1]='\0';\r
fprintf(f,"%s",tmp);\r
}\r
\r
Init = FALSE;\r
\r
+ gui_init(GUI);\r
+\r
util_init();\r
option_init_pg();\r
\r
// start engine\r
\r
engine_open(Engine);\r
+\r
if(!engine_active(Engine)){\r
my_fatal("Could not start \"%s\"\n",option_get(Option,"EngineCommand"));\r
}\r
// initialize uci parsing and send uci command. \r
// Parse options and wait for uciok\r
\r
+ // XXX\r
uci_open(Uci,Engine);\r
\r
option_set_default(Option,"EngineName",Uci->name);\r
if(my_string_case_equal(entry->section,"engine")){\r
// also updates value in Uci->option\r
uci_send_option(Uci,entry->name,"%s",entry->value);\r
- // this is inherited, it probably does not work correctly\r
- if(my_string_case_equal(entry->name,"MultiPV") &&\r
- atoi(entry->value)>1){\r
- Uci->multipv_mode=TRUE;\r
- }\r
}\r
}\r
\r
}\r
}\r
\r
- gui_init(GUI);\r
+ // gui_init(GUI);\r
mainloop();\r
return EXIT_SUCCESS; \r
}\r
ini_t ini[1];\r
int ret;\r
ini_init(ini);\r
- my_log("POLYGLOT Setting PolyGlot option %s=\"%s\"\n",name,value);\r
+ my_log("POLYGLOT Setting PolyGlot option \"%s=%s\"\n",name,value);\r
if(my_string_case_equal(name,"Save")){\r
ret=my_mkdir(option_get(Option,"SettingsDir"));\r
if(ret){\r
\r
my_log("POLYGLOT *** QUIT ***\n");\r
\r
- if (Init) {\r
+ if (Init && !Engine->pipex->quit_pending) {\r
\r
stop_search();\r
+ Engine->pipex->quit_pending=TRUE;\r
engine_send(Engine,"quit");\r
my_log("POLYGLOT Closing engine\n");\r
engine_close(Engine);\r