X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b568d04ffa191f9e3b643ca33526094eca0ba304..f5ba273ecd799f652736ce2bc830283787302a56:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index a4647eee3c..0a44516706 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); + strncpy(s_szBuf, _T("("), len); + len -= 1; // strlen("(") + p += 1; + strncat(p, mask, len); + size_t lenMask = wxStrlen(mask); + len -= lenMask; + p += lenMask; + + strncat(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; } } @@ -398,6 +417,9 @@ void wxLogStderr::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) #if defined(__WXMSW__) && wxUSE_GUI OutputDebugString(str + wxT("\r\n")); #endif // MSW +#if defined(__WXMAC__) && wxUSE_GUI + debugstr(str + wxT("\r\n")); +#endif // MSW } // ---------------------------------------------------------------------------- @@ -431,7 +453,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 +563,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 } @@ -607,15 +635,16 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) // send it to the normal log destination wxLogDebug(szBuf); -#if wxUSE_GUI +#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.")); + "\nYou can also choose [Cancel] to suppress " + "further warnings.")); - switch ( wxMessageBox(szBuf, _("Debug"), - wxYES_NO | wxCANCEL | wxICON_STOP ) ) { +#if wxUSE_GUI + switch ( wxMessageBox(szBuf, "Debug", + wxYES_NO | wxCANCEL | wxICON_STOP ) ) { case wxYES: Trap(); break; @@ -624,8 +653,23 @@ void wxOnAssert(const wxChar *szFile, int nLine, const wxChar *szMsg) s_bNoAsserts = TRUE; break; - //case wxNO: nothing to do + //case wxNO: nothing to do } +#else // !GUI, but MSW + switch ( ::MessageBox(NULL, szBuf, "Debug", + MB_YESNOCANCEL | MB_ICONSTOP ) ) { + case IDYES: + Trap(); + break; + + case IDCANCEL: + s_bNoAsserts = TRUE; + break; + + //case IDNO: nothing to do + } +#endif // GUI or MSW + #else // !GUI Trap(); #endif // GUI/!GUI