by H.G.Muller » 15 Sep 2013, 08:29
No, this is a bug. Thank you for spotting it. WinBoard's MateTest routine distinguish multiple cases of stalemate (different from all checkmate cases, because the result message that would have to be printed is still "stalemate" rather than "checkmate", despite the result being 1-0 or 0-1). And in the code that decided what to do based on the result, the case where the side to move wins by stalemate was omitted, so that it was treated as the default case (where there is no mate of any kind).
Adding the missing case label makes WinBoard adjudicate all cases you mention that were not adjudicated as 0-1. I hope this is OK.
I noticed that there are several other places where WinBoard uses MateTest to detect game end other than the adjudication during play, in particular when loading games that do not state their own result, but simply end by running into end-of-file or the start of another game. Mainly to repair the game by adding a # sign and a result comment. In those cases (or when adjudication is switched off) the various win conditions of Suicide / Giveaway also seem untreated.
I will fix this in the next release.