X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e95f8fde77a7e5951b742db0ea50de4d6f1118ff..95b3e2768f12079b96999a2c31048cf29ed5e651:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index 9a182465b8..b577f27aef 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -159,17 +159,22 @@ IMPLEMENT_LOG_FUNCTION(Message) IMPLEMENT_LOG_FUNCTION(Info) IMPLEMENT_LOG_FUNCTION(Status) +void wxSafeShowMessage(const wxString& title, const wxString& text) +{ +#ifdef __WINDOWS__ + ::MessageBox(NULL, text, title, MB_OK | MB_ICONSTOP); +#else + wxFprintf(stderr, _T("%s: %s\n"), title.c_str(), text.c_str()); +#endif +} + // fatal errors can't be suppressed nor handled by the custom log target and // always terminate the program void wxVLogFatalError(const wxChar *szFormat, va_list argptr) { wxVsnprintf(s_szBuf, s_szBufSize, szFormat, argptr); -#if wxUSE_GUI - wxMessageBox(s_szBuf, _("Fatal Error"), wxID_OK | wxICON_STOP); -#else - wxFprintf(stderr, _("Fatal error: %s\n"), s_szBuf); -#endif + wxSafeShowMessage(_T("Fatal Error"), s_szBuf); abort(); } @@ -764,6 +769,8 @@ void wxLogStream::DoLogString(const wxChar *szString, time_t WXUNUSED(t)) wxLogChain::wxLogChain(wxLog *logger) { + m_bPassMessages = TRUE; + m_logNew = logger; m_logOld = wxLog::SetActiveTarget(this); } @@ -781,8 +788,6 @@ void wxLogChain::SetLog(wxLog *logger) if ( m_logNew != this ) delete m_logNew; - wxLog::SetActiveTarget(logger); - m_logNew = logger; }