return offs + strlen(header[ed->which]);
}
+#define MATE_SCORE 100000
static char spaces[] = " "; // [HGM] align: spaces for padding
static void
snprintf( buf, 24, "%d%s\t", val, spaces + 2*i);
}
else {
- snprintf( buf, 24, "%.1fM%s\t", val/1000000.0, spaces + 8 + 2*(val > 1e7));
+ char unit = 'M';
+ if(val >= 1e9) val /= 1e3, unit = 'G';
+ snprintf( buf, 24, "%.*f%c%s\t", 1 + (val < 1e7), val/1e6, unit, spaces + 10 + 2*(val >= 1e8));
}
}
snprintf( s_nodes, sizeof(s_nodes)/sizeof(s_nodes[0]), u64Display "%s\t", ed->nodes, spaces + 2*i);
}
else {
- snprintf( s_nodes, sizeof(s_nodes)/sizeof(s_nodes[0]), "%.1fM%s\t", u64ToDouble(ed->nodes) / 1000000.0,
- spaces + 8 + 2*(ed->nodes > 1e7));
+ double x = u64ToDouble(ed->nodes);
+ char unit = 'M';
+ if(x >= 1e9) x /= 1e3, unit = 'G';
+ snprintf( s_nodes, sizeof(s_nodes)/sizeof(s_nodes[0]), "%.*f%c%s\t", 1 + (x < 1e7), x / 1e6,
+ unit, spaces + 10 + 2*(ed->nodes >= 1e8));
}
/* TB Hits etc. */
if( h == 0 ) {
snprintf( s_score, sizeof(s_score)/sizeof(s_score[0]), " 0.00%c\t", fail );
} else
+ if( h >= MATE_SCORE) snprintf(s_score, 16, " %s#%d%c\t", ( h > MATE_SCORE+9 ? "" : " "), h - MATE_SCORE, fail ); else
+ if(-h >= MATE_SCORE) snprintf(s_score, 16, " %s#-%d%c\t", (-h > MATE_SCORE+9 ? "" : " "), -h - MATE_SCORE, fail ); else
if( h > 0 ) {
snprintf( s_score, sizeof(s_score)/sizeof(s_score[0]), "+%.2f%c\t", h / 100.0, fail );
}
}
/* Time */
+ if(time_secs >= 3600)
+ snprintf( s_time, sizeof(s_time)/sizeof(s_time[0]), "%d:%02d:%02d\t", time_secs / 3600, (time_secs / 60) % 60, time_secs % 60 );
+ else
snprintf( s_time, sizeof(s_time)/sizeof(s_time[0]), "%d:%02d.%02d\t", time_secs / 60, time_secs % 60, time_cent );
if(columnMask & 2) s_score[0] = NULLCHAR; // [HGM] hide: erase columns the user has hidden