X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..96360917d3c000e479ec64806b96188342eea260:/src/generic/logg.cpp diff --git a/src/generic/logg.cpp b/src/generic/logg.cpp index fd7f2a25b2..315939cd08 100644 --- a/src/generic/logg.cpp +++ b/src/generic/logg.cpp @@ -22,7 +22,7 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop + #pragma hdrstop #endif #ifndef WX_PRECOMP @@ -37,7 +37,6 @@ #include "wx/textctrl.h" #include "wx/sizer.h" #include "wx/statbmp.h" - #include "wx/button.h" #include "wx/settings.h" #endif // WX_PRECOMP @@ -49,20 +48,18 @@ #include "wx/artprov.h" #ifdef __WXMSW__ - // for OutputDebugString() - #include "wx/msw/private.h" + // for OutputDebugString() + #include "wx/msw/private.h" #endif // Windows #ifdef __WXPM__ - #include + #include #endif #if wxUSE_LOG_DIALOG #include "wx/listctrl.h" #include "wx/imaglist.h" #include "wx/image.h" -#else // !wxUSE_LOG_DIALOG - #include "wx/msgdlg.h" #endif // wxUSE_LOG_DIALOG/!wxUSE_LOG_DIALOG #if defined(__MWERKS__) && wxUSE_UNICODE @@ -84,13 +81,18 @@ // allows to exclude the usage of wxDateTime static wxString TimeStamp(const wxChar *format, time_t t) { +#if wxUSE_DATETIME wxChar buf[4096]; - if ( !wxStrftime(buf, WXSIZEOF(buf), format, localtime(&t)) ) + struct tm tm; + if ( !wxStrftime(buf, WXSIZEOF(buf), format, wxLocaltime_r(&t, &tm)) ) { // buffer is too small? wxFAIL_MSG(_T("strftime() failed")); } return wxString(buf); +#else // !wxUSE_DATETIME + return wxEmptyString; +#endif // wxUSE_DATETIME/!wxUSE_DATETIME } @@ -209,7 +211,7 @@ void wxVLogStatus(wxFrame *pFrame, const wxChar *szFormat, va_list argptr) } } -void wxLogStatus(wxFrame *pFrame, const wxChar *szFormat, ...) +void wxDoLogStatus(wxFrame *pFrame, const wxChar *szFormat, ...) { va_list argptr; va_start(argptr, szFormat); @@ -247,6 +249,12 @@ void wxLogGui::Flush() // do it right now to block any new calls to Flush() while we're here m_bHasMessages = false; + unsigned repeatCount = 0; + if ( wxLog::GetRepetitionCounting() ) + { + repeatCount = wxLog::DoLogNumberOfRepeats(); + } + wxString appName = wxTheApp->GetAppName(); if ( !appName.empty() ) appName[0u] = (wxChar)wxToupper(appName[0u]); @@ -284,6 +292,8 @@ void wxLogGui::Flush() { #if wxUSE_LOG_DIALOG + if ( repeatCount > 0 ) + m_aMessages[nMsgCount-1] += wxString::Format(wxT(" (%s)"), m_aMessages[nMsgCount-2].c_str()); wxLogDialog dlg(NULL, m_aMessages, m_aSeverity, m_aTimes, title, style); @@ -1217,4 +1227,3 @@ void wxLogTextCtrl::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) } #endif // wxUSE_LOG && wxUSE_TEXTCTRL -