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.
static int lastDepth[2] = { -1, -1 };
static int lastForwardMostMove[2] = { -1, -1 };
static int engineState[2] = { -1, -1 };
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];
#define MAX_VAR 400
static int scores[MAX_VAR], textEnd[MAX_VAR], curDepth[2], nrVariations[2];
- 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
/* Update */
lastDepth[which] = depth == 1 && ed.nodes == 0 ? 0 : depth; // [HGM] info-line kudge
/* Update memo */
InsertIntoMemo( ed->which, buf, InsertionPoint(strlen(buf), ed) );
/* Update memo */
InsertIntoMemo( ed->which, buf, InsertionPoint(strlen(buf), ed) );
+ strncpy(lastLine[ed->which], buf, MSG_SIZ);