X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=bbc39be43013acf85de4ef1679d859be476a3dd0;hb=21fe43e32fb967e85a405843bb45cc4a4fc8ab02;hp=9e0dad5ce32c214642ff20bf08854dcee953d53e;hpb=bd38ba7baf07b0ac97656ac1bb54a68a266d223b;p=xboard.git diff --git a/backend.c b/backend.c index 9e0dad5..bbc39be 100644 --- a/backend.c +++ b/backend.c @@ -2471,7 +2471,9 @@ read_from_ics(isr, closure, data, count, error) if(started == STARTED_NONE && (looking_at(buf, &i, "* tells you:") || looking_at(buf, &i, "* says:") || looking_at(buf, &i, "* whispers:") || looking_at(buf, &i, "*(*):") && (sscanf(star_match[1], "%d", &channel),1) || - looking_at(buf, &i, "*(*)(*):") && sscanf(star_match[2], "%d", &channel) == 1 )) { + looking_at(buf, &i, "*(*)(*):") && (sscanf(star_match[2], "%d", &channel),1) || + looking_at(buf, &i, "*(*)(*)(*):") && (sscanf(star_match[3], "%d", &channel),1) || + looking_at(buf, &i, "*(*)(*)(*)(*):") && sscanf(star_match[4], "%d", &channel) == 1 )) { int p; sscanf(star_match[0], "%[^(]", talker+1); // strip (C) or (U) off ICS handle chattingPartner = -1; @@ -8117,6 +8119,8 @@ GameEnds(result, resultDetails, whosays) result, resultDetails ? resultDetails : "(null)", whosays); } + fromX = fromY = -1; // [HGM] abort any move the user is entering. + if (appData.icsActive && (whosays == GE_ENGINE || whosays >= GE_ENGINE1)) { /* If we are playing on ICS, the server decides when the game is over, but the engine can offer to draw, claim