diff --git a/stepmania/src/RageLog.cpp b/stepmania/src/RageLog.cpp index 6195703fea..fa0f19a13c 100644 --- a/stepmania/src/RageLog.cpp +++ b/stepmania/src/RageLog.cpp @@ -213,15 +213,29 @@ void RageLog::Flush() fflush( m_fileInfo ); } + +static char g_AdditionalLogStr[10240] = ""; +static int g_AdditionalLogSize = 0; + void RageLog::UpdateMappedLog() { CString str; for(map::const_iterator i = LogMaps.begin(); i != LogMaps.end(); ++i) str += ssprintf("%s\n", i->second.c_str()); + g_AdditionalLogSize = min( sizeof(g_AdditionalLogStr), str.size() ); + memcpy( g_AdditionalLogStr, str.c_str(), g_AdditionalLogSize ); + + /* XXX: deprecated */ HOOKS->AdditionalLog(str); } +void RageLog::GetAdditionalLog( const char* &p, int &size ) +{ + p = g_AdditionalLogStr; + size = g_AdditionalLogSize; +} + void RageLog::MapLog(const CString &key, const char *fmt, ...) { va_list va; diff --git a/stepmania/src/RageLog.h b/stepmania/src/RageLog.h index c28ca814ec..93750fdc0d 100644 --- a/stepmania/src/RageLog.h +++ b/stepmania/src/RageLog.h @@ -31,6 +31,8 @@ public: void MapLog(const CString &key, const char *fmt, ...); void UnmapLog(const CString &key); + static void GetAdditionalLog( const char* &p, int &size ); + private: FILE *m_fileLog, *m_fileInfo; void Write( int, CString );