X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=option.c;h=0052fe3be4e0b535696b1e5c3c2a137a646e531c;hb=bb6c47f77f59067c358579a71cefa1ae65180a30;hp=6ac2cf137cc9a1c506163b3099550edf22ff71ba;hpb=cb9522491af43508c47cb927247e3b5769b9259b;p=polyglot.git diff --git a/option.c b/option.c index 6ac2cf1..0052fe3 100644 --- a/option.c +++ b/option.c @@ -12,7 +12,7 @@ // constants static const bool UseDebug = FALSE; - +static const int StringSize = 4096; // variables @@ -21,20 +21,20 @@ static const bool UseDebug = FALSE; option_list_t Option[1]; option_t DefaultOptions[] = { - { "OptionFile", "string","0","0", "polyglot.ini", NULL,0,NNB, PG}, + { "OptionFile", "file","0","0", "polyglot.ini", NULL,0,NNB, PG}, // options - { "Persist", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, - - { "PersistFile", "string","0","0", "" , NULL,0,NNB, PG}, + { "Persist", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, + { "PersistFile", "file","0","0", "" , NULL,0,NNB, PG}, + { "PersistDir", "path","0","0", "" , NULL,0,NNB, PG}, { "EngineName", "string","0","0", "" , NULL,0,NNB, PG}, - { "EngineDir", "string","0","0", "." , NULL,0,NNB, PG}, + { "EngineDir", "path","0","0", "." , NULL,0,NNB, PG}, { "EngineCommand", "string","0","0", "" , NULL,0,NNB, PG}, { "Log", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD|UCI}, - { "LogFile", "string","0","0", "polyglot.log", NULL,0,NNB, PG|XBOARD|UCI}, + { "LogFile", "file","0","0", "polyglot.log", NULL,0,NNB, PG|XBOARD|UCI}, { "UCI", "check","0","0", "false" , NULL,0,NNB, PG}, @@ -50,7 +50,7 @@ option_t DefaultOptions[] = { { "MateScore", "spin","0","100000", "10000" , NULL,0,NNB, PG|XBOARD}, { "Book", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD|UCI}, - { "BookFile", "string","0","0", "book.bin" , NULL,0,NNB, PG|XBOARD|UCI}, + { "BookFile", "file","0","0", "book.bin" , NULL,0,NNB, PG|XBOARD|UCI}, { "BookRandom", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD|UCI}, { "BookDepth", "spin","0","256", "256" , NULL,0,NNB, PG|XBOARD}, @@ -78,6 +78,11 @@ option_t DefaultOptions[] = { { "WbWorkArounds", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, { "WbWorkArounds2", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, + + // Buttons + +// { "Defaults", "reset","0","0", "false" , NULL,0,NNB, PG|XBOARD}, + { NULL, NULL,"0","0", NULL , NULL,0,NNB, 0}, }; @@ -100,6 +105,8 @@ void option_init_pg() { int i; option_t *p=DefaultOptions; + char *home_dir; + char PersistDir[StringSize]; option_init(Option); while(p){ @@ -113,6 +120,18 @@ void option_init_pg() { for(i=0;ioption_nb;i++){ Option->options[i].value=my_strdup(Option->options[i].default_); } +#ifndef _WIN32 + home_dir=getenv("HOME"); + if(!home_dir){ + home_dir="."; + } + snprintf(PersistDir,sizeof(PersistDir),"%s/.polyglot",home_dir); + PersistDir[sizeof(PersistDir)-1]='\0'; +#else + sprintf(PersistDir,".\\_PG"); +#endif + option_set(Option,"PersistDir",PersistDir); + option_set_default(Option,"PersistDir",PersistDir); } // option_init() @@ -167,6 +186,11 @@ bool option_set(option_list_t *option, opt = option_find(option,name); if (opt == NULL) return FALSE; + if(my_string_case_equal(opt->type,"check")){ + value=(my_string_equal(value,"1")|| + my_string_case_equal(value,"true"))?"true":"false"; + } + my_string_set(&opt->value,value); if (UseDebug) my_log("POLYGLOT OPTION SET \"%s\" -> \"%s\"\n",opt->name,opt->value); @@ -187,6 +211,11 @@ bool option_set_default(option_list_t *option, opt = option_find(option,name); if (opt == NULL) return FALSE; + if(my_string_case_equal(opt->type,"check")){ + value=(my_string_equal(value,"1")|| + my_string_case_equal(value,"true"))?"true":"false"; + } + my_string_set(&opt->default_,value); if (UseDebug) my_log("POLYGLOT OPTION DEFAULT SET \"%s\" -> \"%s\"\n",opt->name,opt->default_);