X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flog.cpp;h=2782c930160ad1e8b3a042981ff90d8d8bf0d7b0;hb=dffa89ebdee4d328a8e166b30fcdf38a3fc54b28;hp=76c0aa98cd83ca5d900d0113a0e8a83e2d1c3165;hpb=5da604521611a960140b58a2fb0f236c65610b70;p=virtualjaguar diff --git a/src/log.cpp b/src/log.cpp index 76c0aa9..2782c93 100644 --- a/src/log.cpp +++ b/src/log.cpp @@ -3,14 +3,17 @@ // // Originally by David Raingeard (Cal2) // GCC/SDL port by Niels Wagenaar (Linux/WIN32) and Caz (BeOS) -// Cleanups/new stuff by James L. Hammons +// Cleanups/new stuff by James Hammons // (C) 2010 Underground Software // -// JLH = James L. Hammons +// JLH = James Hammons // // Who When What // --- ---------- ------------------------------------------------------------- // JLH 01/16/2010 Created this log ;-) +// JLH 07/11/2011 Instead of dumping out on max log file size being reached, we +// now just silently ignore any more output. 10 megs ought to be +// enough for anybody. ;-) Except when it isn't. :-P // #include "log.h" @@ -26,7 +29,7 @@ static uint32 logSize = 0; int LogInit(const char * path) { - log_stream = fopen(path, "wrt"); + log_stream = fopen(path, "w"); if (log_stream == NULL) return 0; @@ -41,7 +44,8 @@ FILE * LogGet(void) void LogDone(void) { - fclose(log_stream); + if (log_stream != NULL) + fclose(log_stream); } // @@ -51,16 +55,23 @@ void LogDone(void) void WriteLog(const char * text, ...) { va_list arg; - va_start(arg, text); + + if (log_stream == NULL) + { + va_end(arg); + return; + } + logSize += vfprintf(log_stream, text, arg); if (logSize > MAX_LOG_SIZE) { + // Instead of dumping out, we just close the file and ignore any more output. fflush(log_stream); fclose(log_stream); - exit(1); - }//*/ + log_stream = NULL; + } va_end(arg); fflush(log_stream); // Make sure that text is written!