X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=e9a1718979ba11efe20a88144236ffded08990c7;hb=6fff4162d772695af69d2c7c9486c8f17a5b0b45;hp=30b2ad517a36a66bd150323331849e6573244678;hpb=c118cf9cee0e6d5a3f78c8b409100948a3a22a16;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 30b2ad5..e9a1718 100644 --- a/dialogs.c +++ b/dialogs.c @@ -2503,7 +2503,7 @@ void DisplayHelp (char *name) { static char *xboardMan, *manText[2], tidy[MSG_SIZ], engMan[MSG_SIZ]; - char buf[MSG_SIZ], *eng; + char buf[MSG_SIZ], adapter[MSG_SIZ], *eng; int n = 0; FILE *f; if(!xboardMan) { @@ -2512,7 +2512,13 @@ DisplayHelp (char *name) } if(currentCps) { // for engine options we have to look in engine manual snprintf(buf, MSG_SIZ, "man -w "); // get (tidied) engine name in buf + TidyProgramName(currentCps->program, "localhost", adapter); // name of binary we are actually running TidyProgramName(currentCps == &first ? appData.firstChessProgram : appData.secondChessProgram, "localhost", buf+7); + if(strcmp(buf+7, adapter) && StrCaseStr(name, adapter) == name) { // option starts with name of apparent proxy for engine + safeStrCpy(buf+7, adapter, MSG_SIZ-7); // use adapter manual + name += strlen(adapter); // strip adapter name of option + while(*name == ' ') name++; + } if(strcmp(buf, tidy)) { // is different engine from last time FREE(manText[1]); manText[1] = NULL; // so any currently held text is worthless safeStrCpy(tidy, buf, MSG_SIZ); // remember current engine