Fix nps bug
[xboard.git] / backend.c
index e0f6ec9..855f6d8 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -2861,7 +2861,7 @@ read_from_ics(isr, closure, data, count, error)
 
                if(channel >= 0) // channel broadcast; look if there is a chatbox for this channel
                for(p=0; p<MAX_CHAT; p++) {
-                   if(channel == atoi(chatPartner[p])) {
+                   if(chatPartner[p][0] >= '0' && chatPartner[p][0] <= '9' && channel == atoi(chatPartner[p])) {
                    talker[0] = '['; strcat(talker, "] ");
                    Colorize(channel == 1 ? ColorChannel1 : ColorChannel, FALSE);
                    chattingPartner = p; break;
@@ -6188,7 +6188,10 @@ FinishMove(moveType, fromX, fromY, toX, toY, promoChar)
 
   MakeMove(fromX, fromY, toX, toY, promoChar); /*updates forwardMostMove*/
 
-  if(Adjudicate(NULL)) return 1; // [HGM] adjudicate: take care of automtic game end
+  if(Adjudicate(NULL)) { // [HGM] adjudicate: take care of automatic game end
+    ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/
+    return 1;
+  }
 
   if (gameMode == BeginningOfGame) {
     if (appData.noChessProgram) {
@@ -8892,7 +8895,7 @@ InitChessProgram(cps, setup)
       if( gameInfo.variant == VariantBughouse || gameInfo.variant == VariantCrazyhouse )
            overruled = gameInfo.boardWidth != 8 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 5;
       if( gameInfo.variant == VariantCapablanca || gameInfo.variant == VariantCapaRandom ||
-                               gameInfo.variant == VariantGothic  || gameInfo.variant == VariantFalcon )
+          gameInfo.variant == VariantGothic || gameInfo.variant == VariantFalcon || gameInfo.variant == VariantJanus )
            overruled = gameInfo.boardWidth != 10 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 0;
       if( gameInfo.variant == VariantCourier )
            overruled = gameInfo.boardWidth != 12 || gameInfo.boardHeight != 8 || gameInfo.holdingsSize != 0;
@@ -13725,7 +13728,7 @@ SendTimeControl(cps, mps, tc, inc, sd, st)
       SendToProgram(buf, cps);
     }
 
-    if(cps->nps > 0) { /* [HGM] nps */
+    if(cps->nps >= 0) { /* [HGM] nps */
        if(cps->supportsNPS == FALSE)
          cps->nps = -1; // don't use if engine explicitly says not supported!
        else {
@@ -13908,8 +13911,6 @@ ParseOption(Option *opt, ChessProgramState *cps)
            opt->type = Button;
        } else if(p = strstr(opt->name, " -save")) {
            opt->type = SaveButton;
-       } else if(p = strstr(opt->name, " -reset")) {
-           opt->type = ResetButton;
        } else return FALSE;
        *p = 0; // terminate option name
        // now look if the command-line options define a setting for this engine option.