From 4874d4beeab3424c79e343c5be80f4dd7eea8808 Mon Sep 17 00:00:00 2001 From: H.G. Muller Date: Sat, 6 Nov 2010 19:49:45 +0100 Subject: [PATCH] Keep last PV while clearing engine-output display When ponder is on, the display is cleared immediately when the last line of thinking output appears by the appearing ponder output. So you would never get the chance to see it. This line is now re-written after clearing, so it appears at the bottom of the output for the next search. --- engineoutput.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) diff --git a/engineoutput.c b/engineoutput.c index 22b008c..00859bf 100644 --- a/engineoutput.c +++ b/engineoutput.c @@ -70,6 +70,7 @@ static void UpdateControls( EngineOutputData * ed ); static int lastDepth[2] = { -1, -1 }; static int lastForwardMostMove[2] = { -1, -1 }; static int engineState[2] = { -1, -1 }; +static char lastLine[2][MSG_SIZ]; #define MAX_VAR 400 static int scores[MAX_VAR], textEnd[MAX_VAR], curDepth[2], nrVariations[2]; @@ -163,7 +164,13 @@ void SetProgramStats( FrontEndProgramStats * stats ) // now directly called by b clearMemo = TRUE; } - if( clearMemo ) { DoClearMemo(which); nrVariations[which] = 0; } + if( clearMemo ) { + DoClearMemo(which); nrVariations[which] = 0; + if(appData.ponderNextMove && lastLine[which][0]) { + InsertIntoMemo( which, lastLine[which], 0 ); + InsertIntoMemo( which, "\n", 0 ); + } + } /* Update */ lastDepth[which] = depth == 1 && ed.nodes == 0 ? 0 : depth; // [HGM] info-line kudge @@ -476,6 +483,7 @@ static void UpdateControls( EngineOutputData * ed ) /* Update memo */ InsertIntoMemo( ed->which, buf, InsertionPoint(strlen(buf), ed) ); + strncpy(lastLine[ed->which], buf, MSG_SIZ); } /* Colors */ -- 1.7.0.4