That is still another bug then: the default is supposed to be 1. (Which would cause the old behavior, which is to write everything the engine cares to dump into the debug file.) This is of course the mode one should work in when debugging an engine.
Mode 0 was provided to make it possible to protect debug-file using programs from non-compliant engine output that might crash them. Mode 2 was provided to have the best of both worlds with somewhat smarter debug-file using programs, which can stand anything that starts with # (by ignoring that line, as WinBoard would when the engine had pre-fixed it with #).
I don't understand how XBoard could have 0 as default, though. The option is declared as this:
- Code: Select all
{ "engineDebugOutput", "engineDebugOutput", XtRInt,
sizeof(int), XtOffset(AppDataPtr, engineComments),
XtRImmediate, (XtPointer) 1},
I was under the impression that the last parameter in the struct was the default value.
It is fishy that the
error {...} message sent by your engine is commented out like it is non-compliant. It seems to me that this is one of the cases that should pass the test I posted above.
I guess the fact that this message is sent points to another bug (the most horrible of all): apparently XBoard sends
egtbpath, no doubt in stead of
egtpath, which it should have sent according to the specs. Sh±t! After some discussion we changed this command from egtbpath to egtpath (because bitbases were no egtbs), and I changed the string in the source, but I see now that it actually occurred twice. Once when a match was found with the Winboard_x defaultPathEGTB parameter, but in another place after a match with the new egtFormats option...