X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmisc.cpp;h=1a092c612fd2abc084acc27366d6644622c0d5d3;hp=3206a2d1950081229b0e9d3f623ba2db66dc8f81;hb=6becc8144686b9a40d8dc9d5e0ce4dec28cbcb6a;hpb=72641dcaae2241c830254fc19b742eb477d831a3 diff --git a/src/misc.cpp b/src/misc.cpp index 3206a2d1..1a092c61 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -51,17 +51,15 @@ const string engine_info(bool to_uci) { string month, day, year; stringstream s, date(__DATE__); // From compiler, format is "Sep 21 2008" + s << "Stockfish " << Version; + if (Version.empty()) { date >> month >> day >> year; - s << "Stockfish " << Tag - << setfill('0') << " " << year.substr(2) - << setw(2) << (1 + months.find(month) / 4) - << setw(2) << day; + s << Tag << setfill('0') << " " << year.substr(2) + << setw(2) << (1 + months.find(month) / 4) << setw(2) << day; } - else - s << "Stockfish " << Version; s << cpu64 << popcnt << (to_uci ? "\nid author ": " by ") << "Tord Romstad, Marco Costalba and Joona Kiiski"; @@ -96,33 +94,33 @@ void dbg_print() { /// usual i/o functionality and without changing a single line of code! /// Idea from http://groups.google.com/group/comp.lang.c++/msg/1d941c0f26ea0d81 -class Logger { +struct Tie: public streambuf { // MSVC requires splitted streambuf for cin and cout - Logger() : in(cin.rdbuf(), file), out(cout.rdbuf(), file) {} - ~Logger() { start(false); } + Tie(streambuf* b, ofstream* f) : buf(b), file(f) {} - struct Tie: public streambuf { // MSVC requires splitted streambuf for cin and cout + int sync() { return file->rdbuf()->pubsync(), buf->pubsync(); } + int overflow(int c) { return log(buf->sputc((char)c), "<< "); } + int underflow() { return buf->sgetc(); } + int uflow() { return log(buf->sbumpc(), ">> "); } - Tie(streambuf* b, ofstream& f) : buf(b), file(f) {} + streambuf* buf; + ofstream* file; - int sync() { return file.rdbuf()->pubsync(), buf->pubsync(); } - int overflow(int c) { return log(buf->sputc((char)c), "<< "); } - int underflow() { return buf->sgetc(); } - int uflow() { return log(buf->sbumpc(), ">> "); } + int log(int c, const char* prefix) { - int log(int c, const char* prefix) { + static int last = '\n'; - static int last = '\n'; + if (last == '\n') + file->rdbuf()->sputn(prefix, 3); - if (last == '\n') - file.rdbuf()->sputn(prefix, 3); + return last = file->rdbuf()->sputc((char)c); + } +}; - return last = file.rdbuf()->sputc((char)c); - } +class Logger { - streambuf* buf; - ofstream& file; - }; + Logger() : in(cin.rdbuf(), &file), out(cout.rdbuf(), &file) {} + ~Logger() { start(false); } ofstream file; Tie in, out;