X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=option.c;h=44d5c83cb20b2adf1217bafea87d484e65c1d48c;hb=5eed4adb3552562329c0b0b460c8851efb1a38bb;hp=8d067b84def9d53dc0b4679b7d1e74505169f635;hpb=a0f731f21d6aa26dbf7246039a1c66c2ade0533f;p=polyglot.git diff --git a/option.c b/option.c index 8d067b8..44d5c83 100644 --- a/option.c +++ b/option.c @@ -25,11 +25,14 @@ option_t DefaultOptions[] = { // options + { "SaveSettingsOnExit","check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, + { "SaveFile", "string","0","0", "" , NULL,0,NNB, PG|XBOARD}, + { "EngineName", "string","0","0", "" , NULL,0,NNB, PG}, { "EngineDir", "string","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}, + { "Log", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD|UCI}, { "LogFile", "string","0","0", "polyglot.log", NULL,0,NNB, PG|XBOARD|UCI}, { "UCI", "check","0","0", "false" , NULL,0,NNB, PG}, @@ -37,26 +40,28 @@ option_t DefaultOptions[] = { { "UseNice", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD|UCI}, { "NiceValue", "spin", "0","20", "5" , NULL,0,NNB, PG|XBOARD|UCI}, - { "Chess960", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, + { "Chess960", "check","0","0", "false" , NULL,0,NNB, PG}, { "Resign", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { "ResignMoves", "spin","0","10000", "3" , NULL,0,NNB, PG|XBOARD}, { "ResignScore", "spin","0","10000", "600" , NULL,0,NNB, PG|XBOARD}, - { "MateScore", "spin","0","1000000", "10000" , NULL,0,NNB, PG|XBOARD}, + { "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}, { "BookRandom", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD|UCI}, + { "BookDepth", "spin","0","256", "256" , NULL,0,NNB, PG|XBOARD}, + { "BookTreshold", "spin","0","1000", "5" , NULL,0,NNB, PG|XBOARD|UCI}, { "BookLearn", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { "KibitzMove", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { "KibitzPV", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { "KibitzCommand", "string","0","0", "tellall" , NULL,0,NNB, PG|XBOARD}, - { "KibitzDelay", "spin","0","10000", "5" , NULL,0,NNB, PG|XBOARD}, - { "KibitzInterval", "spin","0","10000", "0" , NULL,0,NNB, PG|XBOARD}, + { "KibitzDelay", "spin","0","1000", "5" , NULL,0,NNB, PG|XBOARD}, + { "KibitzInterval", "spin","0","1000", "0" , NULL,0,NNB, PG|XBOARD}, { "ShowPonder", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { "ScoreWhite", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, @@ -66,11 +71,12 @@ option_t DefaultOptions[] = { { "UCIVersion", "spin","1","2", "2" , NULL,0,NNB, PG|XBOARD}, { "CanPonder", "check","1","2", "false" , NULL,0,NNB, PG|XBOARD}, { "SyncStop", "check","1","2", "false" , NULL,0,NNB, PG|XBOARD}, - { "Affinity", "spin","-1","32", "-1" , NULL,0,NNB, PG}, - { "RepeatPV", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, + { "Affinity", "spin","-1","32", "-1" , NULL,0,NNB, PG}, + { "RepeatPV", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, { "PromoteWorkAround","check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, - { "WbWorkArounds", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, + { "WbWorkArounds", "check","0","0", "true" , NULL,0,NNB, PG|XBOARD}, + { "WbWorkArounds2", "check","0","0", "false" , NULL,0,NNB, PG|XBOARD}, { NULL, NULL,"0","0", NULL , NULL,0,NNB, 0}, }; @@ -120,16 +126,16 @@ void option_init(option_list_t *option){ // option_insert() void option_insert(option_list_t *option, option_t *new_option){ + int i; + option_t *opt; ASSERT(option!=NULL); ASSERT(new_option!=NULL); ASSERT(new_option->name!=NULL); - option_t *opt; opt=option_find(option,new_option->name); if(!opt){ opt=&option->options[option->option_nb]; option->option_nb++; } - int i; if(option->option_nb>=OptionNb){ my_fatal("option_insert(): option list overflow\n"); } @@ -180,7 +186,7 @@ bool option_set_default(option_list_t *option, opt = option_find(option,name); if (opt == NULL) return FALSE; - opt->default_=my_strdup(value); + my_string_set(&opt->default_,value); if (UseDebug) my_log("POLYGLOT OPTION DEFAULT SET \"%s\" -> \"%s\"\n",opt->name,opt->default_); @@ -290,10 +296,14 @@ option_t * option_find(option_list_t *option, const char name[]) { return NULL; } +// option_start_iter() + void option_start_iter(option_list_t *option){ option->iter=0; } +// option_next() + option_t * option_next(option_list_t *option){ ASSERT(option->iter<=option->option_nb); if(option->iter==option->option_nb){ @@ -318,6 +328,8 @@ void option_free(option_t *option){ option->mode=0; } +// option_clear() + void option_clear(option_list_t *option){ int i; for (i = 0; i < option->option_nb; i++) { @@ -326,5 +338,18 @@ void option_clear(option_list_t *option){ option->option_nb=0; } +// option_from_ini() + +void option_from_ini(option_list_t *option, + ini_t *ini, + const char *section){ + ini_entry_t *entry; + ini_start_iter(ini); + while((entry=ini_next(ini))){ + option_set(option,entry->name,entry->value); + option_set_default(option,entry->name,entry->value); + } +} + // end of option.cpp