Fix display of last move of last match game
authorH.G. Muller <h.g.muller@hccnet.nl>
Wed, 8 Jun 2011 15:20:01 +0000 (17:20 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Wed, 8 Jun 2011 16:09:24 +0000 (18:09 +0200)
When a game was adjudicated (e.g. because XBoard detected mate) GameEnds
would trigger an exit if it was the last game of the match, and thus
never returned, while the ShowMove was called only after return from
Adjudicate. An extra ToNrEvent is now used in GameEnd in this case to
cause ShowMove to be called before exiting. (Ugly kludge...)

backend.c

index 6243fa3..05e60b5 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -10260,6 +10260,7 @@ GameEnds(result, resultDetails, whosays)
     if(popupRequested) { // [HGM] crash: this calls GameEnds recursively through ExitEvent! Make it a harmless tail recursion.
        if(matchMode == TRUE) { // match through command line: exit with or without popup
            if(ranking) {
     if(popupRequested) { // [HGM] crash: this calls GameEnds recursively through ExitEvent! Make it a harmless tail recursion.
        if(matchMode == TRUE) { // match through command line: exit with or without popup
            if(ranking) {
+               ToNrEvent(forwardMostMove);
                if(strcmp(ranking, "busy")) DisplayFatalError(ranking, 0, 0);
                else ExitEvent(0);
            } else DisplayFatalError(buf, 0, 0);
                if(strcmp(ranking, "busy")) DisplayFatalError(ranking, 0, 0);
                else ExitEvent(0);
            } else DisplayFatalError(buf, 0, 0);