X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=uci.c;h=9326ec7b27951712d929602f2142b8f5e0343a97;hb=bb6c47f77f59067c358579a71cefa1ae65180a30;hp=e44fa34f5a3445a1d4e20989dbde28f42acc56ee;hpb=1087eb7b2d8447adf9a7deb549d4004a87b46b10;p=polyglot.git diff --git a/uci.c b/uci.c index e44fa34..9326ec7 100644 --- a/uci.c +++ b/uci.c @@ -22,7 +22,7 @@ static const bool UseDebug = FALSE; -static const int StringSize = 4096; +#define StringSize ((int)4096) // variables @@ -58,11 +58,34 @@ static int mate_score (int dist); // functions + +// uci_adapt_UCI3() + +static void apply_UCI3_heuristics(option_t *opt){ + if(option_get_int(Option,"UCIVersion")>2){ + return; + } + if(!my_string_equal(opt->type,"string")){ + return; + } + if(!strncmp(opt->name,"UCI_",4)){ + return; + } + if(my_string_case_contains(opt->name,"file")){ + my_string_set(&opt->type,"file"); + return; + } + if(my_string_case_contains(opt->name,"path")){ + my_string_set(&opt->type,"path"); + return; + } +} + // uci_set_threads() void uci_set_threads(uci_t * uci, int n) { - ASSERT(n>=1); const char *thread_option=uci_thread_option(uci); + ASSERT(n>=1); if(thread_option){ uci_send_option(uci,thread_option,"%d",n); } @@ -271,7 +294,7 @@ bool uci_send_option(uci_t * uci, const char option[], const char format[], ...) opt=option_find(uci->option,option); if(opt){ found=TRUE; - if(!my_string_case_equal(opt->type,"button")){ + if(!IS_BUTTON(opt->type)){ if(!my_string_equal(opt->value,value)){ engine_send(uci->engine,"setoption name %s value %s", opt->name,value); @@ -805,6 +828,8 @@ static void parse_option(uci_t * uci, const char string[]) { } parse_close(parse); + + apply_UCI3_heuristics(opt); option_insert(uci->option,opt); option_free(opt);