]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/logg.cpp
implement Set/GetTitle() (last part of patch 1679337)
[wxWidgets.git] / src / generic / logg.cpp
index 02e9c0275c9d857fbb2c29f605231c85bd4f485e..d8cd14dc7a3da97276b63e9cd8add5e205ced2f9 100644 (file)
 // 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
 }
 
 
@@ -244,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]);
@@ -281,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);