X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b76b015ed9231ffe128ddba9fb35e37b4be9764d..2c5d45edb5c9b59936959023c52aa33c94ce7007:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index 4f855381f4..e0bc9a779e 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -178,9 +178,23 @@ void wxLogVerbose(const wxChar *szFormat, ...) if ( pLog != NULL && wxLog::IsAllowedTraceMask(mask) ) { wxCRIT_SECT_LOCKER(locker, gs_csLogBuf); + wxChar *p = s_szBuf; + size_t len = WXSIZEOF(s_szBuf); + wxStrncpy(s_szBuf, _T("("), len); + len -= 1; // strlen("(") + p += 1; + wxStrncat(p, mask, len); + size_t lenMask = wxStrlen(mask); + len -= lenMask; + p += lenMask; + + wxStrncat(p, _T(") "), len); + len -= 2; + p += 2; + va_list argptr; va_start(argptr, szFormat); - wxVsnprintf(s_szBuf, WXSIZEOF(s_szBuf), szFormat, argptr); + wxVsnprintf(p, len, szFormat, argptr); va_end(argptr); wxLog::OnLog(wxLOG_Trace, s_szBuf, time(NULL)); @@ -355,8 +369,13 @@ void wxLog::DoLog(wxLogLevel level, const wxChar *szString, time_t t) case wxLOG_Trace: case wxLOG_Debug: #ifdef __WXDEBUG__ - DoLogString(szString, t); -#endif + { + wxString msg = level == wxLOG_Trace ? wxT("Trace: ") + : wxT("Debug: "); + msg << szString; + DoLogString(msg, t); + } +#endif // Debug break; } } @@ -396,7 +415,11 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) // under Windows, programs usually don't have stderr at all, so show the // messages also under debugger - unless it's a console program #if defined(__WXMSW__) && wxUSE_GUI - OutputDebugString(str + wxT("\r\n")); + str += wxT("\r\n") ; + OutputDebugString(str.c_str()); +#endif // MSW +#if defined(__WXMAC__) && wxUSE_GUI + debugstr(str + wxT("\r\n")); #endif // MSW } @@ -431,7 +454,13 @@ wxLog *wxLog::ms_pLogger = (wxLog *)NULL; bool wxLog::ms_doLog = TRUE; bool wxLog::ms_bAutoCreate = TRUE; -const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date +size_t wxLog::ms_suspendCount = 0; + +#if wxUSE_GUI + const wxChar *wxLog::ms_timestamp = wxT("%X"); // time only, no date +#else + const wxChar *wxLog::ms_timestamp = NULL; // save space +#endif wxTraceMask wxLog::ms_ulTraceMask = (wxTraceMask)0; wxArrayString wxLog::ms_aTraceMasks; @@ -535,7 +564,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) wxConvCurrent->MB2WC(s_szBuf, strerror(nErrCode), WXSIZEOF(s_szBuf) -1); return s_szBuf; #else - return strerror(nErrCode); + return strerror((int)nErrCode); #endif #endif // Win/Unix } @@ -610,12 +639,10 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) #if wxUSE_GUI || defined(__WXMSW__) // this message is intentionally not translated - it is for // developpers only - wxStrcat(szBuf, wxT("\nDo you want to stop the program?" - "\nYou can also choose [Cancel] to suppress " - "further warnings.")); + wxStrcat(szBuf, wxT("\nDo you want to stop the program?\nYou can also choose [Cancel] to suppress further warnings.")); #if wxUSE_GUI - switch ( wxMessageBox(szBuf, "Debug", + switch ( wxMessageBox(szBuf, wxT("Debug"), wxYES_NO | wxCANCEL | wxICON_STOP ) ) { case wxYES: Trap(); @@ -628,7 +655,7 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) //case wxNO: nothing to do } #else // !GUI, but MSW - switch ( ::MessageBox(NULL, szBuf, "Debug", + switch ( ::MessageBox(NULL, szBuf, _T("Debug"), MB_YESNOCANCEL | MB_ICONSTOP ) ) { case IDYES: Trap();