X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmisc.cpp;h=08df524bf26beb5bed4453910cc161b1ed8364a3;hp=c75f2ecf421f952dd1c13d25cea5228321b52ddc;hb=0d669be76cadd33c801ba9e07410c789d2c7b364;hpb=ee0371f86e319aa24bc1d32f02d9495eea79aa72 diff --git a/src/misc.cpp b/src/misc.cpp index c75f2ecf..08df524b 100644 --- a/src/misc.cpp +++ b/src/misc.cpp @@ -2,6 +2,7 @@ Stockfish, a UCI chess playing engine derived from Glaurung 2.1 Copyright (C) 2004-2008 Tord Romstad (Glaurung author) Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad + Copyright (C) 2015-2016 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -39,7 +40,7 @@ const string Version = ""; /// usual I/O functionality, all without changing a single line of code! /// Idea from http://groups.google.com/group/comp.lang.c++/msg/1d941c0f26ea0d81 -struct Tie: public streambuf { // MSVC requires splitted streambuf for cin and cout +struct Tie: public streambuf { // MSVC requires split streambuf for cin and cout Tie(streambuf* b, streambuf* l) : buf(b), logBuf(l) {} @@ -64,23 +65,23 @@ struct Tie: public streambuf { // MSVC requires splitted streambuf for cin and c class Logger { Logger() : in(cin.rdbuf(), file.rdbuf()), out(cout.rdbuf(), file.rdbuf()) {} - ~Logger() { start(false); } + ~Logger() { start(""); } ofstream file; Tie in, out; public: - static void start(bool b) { + static void start(const std::string& fname) { static Logger l; - if (b && !l.file.is_open()) + if (!fname.empty() && !l.file.is_open()) { - l.file.open("io_log.txt", ifstream::out); + l.file.open(fname, ifstream::out); cin.rdbuf(&l.in); cout.rdbuf(&l.out); } - else if (!b && l.file.is_open()) + else if (fname.empty() && l.file.is_open()) { cout.rdbuf(l.out.buf); cin.rdbuf(l.in.buf); @@ -113,7 +114,7 @@ const string engine_info(bool to_uci) { ss << (Is64Bit ? " 64" : "") << (HasPext ? " BMI2" : (HasPopCnt ? " POPCNT" : "")) << (to_uci ? "\nid author ": " by ") - << "Tord Romstad, Marco Costalba and Joona Kiiski"; + << "T. Romstad, M. Costalba, J. Kiiski, G. Linscott"; return ss.str(); } @@ -156,7 +157,7 @@ std::ostream& operator<<(std::ostream& os, SyncCout sc) { /// Trampoline helper to avoid moving Logger to misc.h -void start_logger(bool b) { Logger::start(b); } +void start_logger(const std::string& fname) { Logger::start(fname); } /// prefetch() preloads the given address in L1/L2 cache. This is a non-blocking