From: H.G. Muller Date: Sat, 6 Nov 2010 18:49:45 +0000 (+0100) Subject: Keep last PV while clearing engine-output display X-Git-Url: http://winboard.nl/cgi-bin?a=commitdiff_plain;h=4874d4beeab3424c79e343c5be80f4dd7eea8808;hp=5521c2e29fe766689f495e85c062c491f99f0405;p=xboard.git 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. --- 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 */