X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=backend.c;h=8c795cda8aec91e2a19f41cedadef11ed7cbf679;hb=f54f775f8c1d291c3de02704181182a50fa5b413;hp=673811c4977a4428c8a0d9c176ff341a34c44595;hpb=422701bcfbeadcc8379c3623550ffdc702311cbb;p=xboard.git diff --git a/backend.c b/backend.c index 673811c..8c795cd 100644 --- a/backend.c +++ b/backend.c @@ -4383,6 +4383,9 @@ HandleMachineMove(message, cps) break; case AnalyzeMode: case AnalyzeFile: + /* icsEngineAnalyze */ + case IcsObserving: + if (!appData.icsEngineAnalyze) ignore = TRUE; break; case TwoMachinesPlay: if ((cps->twoMachinesColor[0] == 'w') != @@ -4445,8 +4448,8 @@ HandleMachineMove(message, cps) prefixHint ? lastHint : "", prefixHint ? " " : "", buf1); - if (currentMove == forwardMostMove || - gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + if (currentMove == forwardMostMove || gameMode == AnalyzeMode + || gameMode == AnalyzeFile || appData.icsEngineAnalyze) { DisplayMove(currentMove - 1); DisplayAnalysis(); } @@ -4472,7 +4475,7 @@ HandleMachineMove(message, cps) programStats.line_is_book = 1; if (currentMove == forwardMostMove || gameMode==AnalyzeMode || - gameMode == AnalyzeFile) { + gameMode == AnalyzeFile || appData.icsEngineAnalyze) { DisplayMove(currentMove - 1); DisplayAnalysis(); } @@ -4517,7 +4520,7 @@ HandleMachineMove(message, cps) strcat(programStats.movelist, " "); strcat(programStats.movelist, p); if (currentMove == forwardMostMove || gameMode==AnalyzeMode || - gameMode == AnalyzeFile) { + gameMode == AnalyzeFile || appData.icsEngineAnalyze) { DisplayMove(currentMove - 1); DisplayAnalysis(); } @@ -7295,8 +7298,10 @@ AnalyzeModeEvent() return; if (gameMode != AnalyzeFile) { - EditGameEvent(); - if (gameMode != EditGame) return; + if (!appData.icsEngineAnalyze) { + EditGameEvent(); + if (gameMode != EditGame) return; + } ResurrectChessProgram(); SendToProgram("analyze\n", &first); first.analyzing = TRUE; @@ -7305,7 +7310,7 @@ AnalyzeModeEvent() AnalysisPopUp(_("Analysis"), _("Starting analysis mode...\nIf this message stays up, your chess program does not support analysis.")); } - gameMode = AnalyzeMode; + if (!appData.icsEngineAnalyze) gameMode = AnalyzeMode; pausing = FALSE; ModeHighlight(); SetGameInfo(); @@ -7771,6 +7776,9 @@ EditPositionEvent() void ExitAnalyzeMode() { + /* icsEngineAnalyze - possible call of other functions */ + if (appData.icsEngineAnalyze) appData.icsEngineAnalyze = FALSE; + if (first.analysisSupport && first.analyzing) { SendToProgram("exit\n", &first); first.analyzing = FALSE; @@ -9240,7 +9248,8 @@ DisplayAnalysisText(text) { char buf[MSG_SIZ]; - if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile + || appData.icsEngineAnalyze) { sprintf(buf, "Analysis (%s)", first.tidy); AnalysisPopUp(buf, text); }