X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=uci.c;h=9326ec7b27951712d929602f2142b8f5e0343a97;hb=bb6c47f77f59067c358579a71cefa1ae65180a30;hp=03c664781f833917085255397fe9cbadb0196012;hpb=446bfd706349c3e1f19916a16558a2f4f7dc8e54;p=polyglot.git diff --git a/uci.c b/uci.c index 03c6647..9326ec7 100644 --- a/uci.c +++ b/uci.c @@ -58,6 +58,29 @@ 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) { @@ -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);