X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bd362275b853cc0308bbde6a60bb2525d659f709..a4ea083bbdf710d3234dcbd2eafb5d0e078f8348:/src/common/log.cpp diff --git a/src/common/log.cpp b/src/common/log.cpp index 6b2f3a0456..f74d88d9f8 100644 --- a/src/common/log.cpp +++ b/src/common/log.cpp @@ -4,7 +4,6 @@ // Author: Vadim Zeitlin // Modified by: // Created: 29/01/98 -// RCS-ID: $Id$ // Copyright: (c) 1998 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -215,9 +214,9 @@ wxLogFormatter::Format(wxLogLevel level, // don't time stamp debug messages under MSW as debug viewers usually // already have an option to do it -#ifdef __WXMSW__ +#ifdef __WINDOWS__ if ( level != wxLOG_Debug && level != wxLOG_Trace ) -#endif // __WXMSW__ +#endif // __WINDOWS__ prefix = FormatTime(info.timestamp); switch ( level ) @@ -232,7 +231,7 @@ wxLogFormatter::Format(wxLogLevel level, // don't prepend "debug/trace" prefix under MSW as it goes to the debug // window anyhow and so can't be confused with something else -#ifndef __WXMSW__ +#ifndef __WINDOWS__ case wxLOG_Debug: // this prefix (as well as the one below) is intentionally not // translated as nobody translates debug messages anyhow @@ -242,7 +241,7 @@ wxLogFormatter::Format(wxLogLevel level, case wxLOG_Trace: prefix += "Trace: "; break; -#endif // !__WXMSW__ +#endif // !__WINDOWS__ } return prefix + msg; @@ -856,8 +855,10 @@ wxLogStderr::wxLogStderr(FILE *fp) void wxLogStderr::DoLogText(const wxString& msg) { - wxFputs(msg + '\n', m_fp); - fflush(m_fp); + // First send it to stderr, even if we don't have it (e.g. in a Windows GUI + // application under) it's not a problem to try to use it and it's easier + // than determining whether we do have it or not. + wxMessageOutputStderr(m_fp).Output(msg); // under GUI systems such as Windows or Mac, programs usually don't have // stderr at all, so show the messages also somewhere else, typically in @@ -902,7 +903,14 @@ wxLogChain::wxLogChain(wxLog *logger) m_bPassMessages = true; m_logNew = logger; - m_logOld = wxLog::SetActiveTarget(this); + + // Notice that we use GetActiveTarget() here instead of directly calling + // SetActiveTarget() to trigger wxLog auto-creation: if we're created as + // the first logger, we should still chain with the standard, implicit and + // possibly still not created standard logger instead of disabling normal + // logging entirely. + m_logOld = wxLog::GetActiveTarget(); + wxLog::SetActiveTarget(this); } wxLogChain::~wxLogChain() @@ -1048,7 +1056,7 @@ static void wxLogWrap(FILE *f, const char *pszPrefix, const char *psz) // get error code from syste unsigned long wxSysErrorCode() { -#if defined(__WXMSW__) && !defined(__WXMICROWIN__) +#if defined(__WINDOWS__) && !defined(__WXMICROWIN__) return ::GetLastError(); #else //Unix return errno; @@ -1061,7 +1069,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) if ( nErrCode == 0 ) nErrCode = wxSysErrorCode(); -#if defined(__WXMSW__) && !defined(__WXMICROWIN__) +#if defined(__WINDOWS__) && !defined(__WXMICROWIN__) static wxChar s_szBuf[1024]; // get error message from system @@ -1109,7 +1117,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) } return s_szBuf; -#else // !__WXMSW__ +#else // !__WINDOWS__ #if wxUSE_UNICODE static wchar_t s_wzBuf[1024]; wxConvCurrent->MB2WC(s_wzBuf, strerror((int)nErrCode), @@ -1118,7 +1126,7 @@ const wxChar *wxSysErrorMsg(unsigned long nErrCode) #else return strerror((int)nErrCode); #endif -#endif // __WXMSW__/!__WXMSW__ +#endif // __WINDOWS__/!__WINDOWS__ } #endif // wxUSE_LOG